perm filename UNI.XGP[V,VDS]1 blob sn#357552 filedate 1978-05-25 generic text, type T, neo UTF8
/FONT#1=BDR30/FONT#2=SIGN57/FONT#3=NGR25/FONT#4=NGR20/FONT#5=NGB25/FONT#6=SGN114/FONT#7=NGB40/FONT#8=BDR40/TMAR=200/PMAR=1998/BMAR=2
␈↓↓␈↓α␈↓β␈↓∧␈↓¬␈↓ε␈↓π␈↓λ␈↓ ↓H␈β↓H␈↓λ 
␈↓ βt␈β∧λ␈↓αUSER'S GUIDE TO 
␈↓ ∧a␈β¬3␈↓εV A L
␈↓ βQ␈βπ;␈↓πA Robot Programming and Control System
␈↓ ¬O␈β
s␈↓λUnimation, Inc.
␈↓ ¬4␈β≠␈↓λShelter Rock Lane
␈↓ ¬∂␈βC␈↓λDanbury, Conn.  06810
␈↓ ε$␈βk␈↓λU.S.A.
␈↓ ¬$␈βc␈↓↓3␈↓#∂rd␈↓# Printing - May 25, 1978
␈↓ εP␈β
0␈↓↓c
␈↓ F␈β⎇␈↓↓[1]
␈↓ ¬8␈ββ4␈↓λINTRODUCTION
␈↓ ↓H␈β∧|␈↓βVAL␈α∞is␈α∞a␈α∞system␈α∞for␈α∞programming␈α∞all␈α∞computer␈α∞controlled␈α
robots␈α
and␈α
manipulators.␈α~The␈α
VAL␈α
system
␈↓ ↓H␈β¬~␈↓βand␈αlanguage␈αhas␈αbeen␈αdeveloped␈αover␈αa␈αperiod␈αof␈αseveral␈αyears␈αand␈αis␈αbased␈αon␈αmore␈αthan␈α15␈αyears
␈↓ ↓H␈β¬8␈↓βof␈α
computer␈α
controlled␈α
manipulator␈α
research␈α
and␈α
development␈α
efforts.
␈↓ ↓H␈β¬t␈↓βVAL␈αis␈αuniversal.␈α⊗All␈αinstructions␈αand␈αprogramming␈αconcepts␈αcan␈αbe␈αapplied␈αto␈αany␈αmanipulator␈αsystem
␈↓ ↓H␈βε∩␈↓βcapable␈α
of␈α
being␈α
computer␈α
controlled.
␈↓ ↓H␈βεN␈↓βVAL␈αis␈αeasily␈αlearned.␈α⊗All␈αinstructions␈αare␈αclear,␈αconcise,␈αand␈αgenerally␈αself␈α
explanatory.␈α∀All␈α
commands
␈↓ ↓H␈βεl␈↓βand␈α∩communications␈α∩with␈α∩the␈α∩robots␈α∩or␈α∩manipulators␈α∩are␈α∩in␈α∩the␈α∩English␈α∩language,␈α∩and␈α⊃use␈α⊃easily
␈↓ ↓H␈βπ
␈↓βunderstood␈α∞word␈α∞and␈α∞number␈α∞sequences.␈α≤Program␈α∞writing␈α∞may␈α∞be␈α∞done␈α∞on␈α
the␈α
same␈α
computer␈α
that
␈↓ ↓H␈βπ(␈↓βcontrols␈αthe␈αrobot,␈αor␈αon␈αany␈αother␈αcomputer␈αor␈αcomputer␈αterminal␈αcapable␈αof␈αstoring␈αthe␈αinstructions
␈↓ ↓H␈βπF␈↓βin␈α
the␈α
proper␈α
format.
␈↓ ↓H␈βλα␈↓βVAL␈α⊃is␈α⊃easily␈α⊃upgraded.␈α"New␈α⊃commands␈α⊃and␈α⊃capabilities␈α⊃are␈α⊃continually␈α⊃being␈α⊃added␈α⊃to␈α⊃the␈α⊂VAL
␈↓ ↓H␈βλ ␈↓βlanguage.␈α⊗The␈αsystem␈αhas␈α
been␈α
designed␈α
to␈α
be␈α
easily␈α
modified␈α
to␈α
suit␈α
specific␈α
applications␈α
and␈α
to␈α
work
␈↓ ↓H␈βλ>␈↓βwith␈α∞manipulators␈α∞or␈α∞robots␈α∞of␈α∞different␈α∞configurations␈α∞and␈α∞size.␈α~The␈α
VAL␈α
system␈α
can␈α
be␈α
used␈α
with
␈↓ ↓H␈βλ\␈↓βprocess␈α
controllers␈α
and␈α
other␈α
peripheral␈α
devices␈α
on␈α
assembly␈α
lines␈α
or␈α
in␈α
manufacturing␈α
operations.
␈↓ ↓H␈β	_␈↓βVAL␈α∂programs␈α∂are␈α∂universal.␈α≡A␈α∂VAL␈α∂program␈α∂written␈α∂for␈α∞one␈α∞robot␈α∞may␈α∞be␈α∞used␈α∞to␈α∞operate␈α∞many
␈↓ ↓H␈β	6␈↓βdifferent␈α
types␈α
of␈α
robots.
␈↓ ↓H␈β	r␈↓βVAL␈αfeatures␈αthe␈αability␈αto␈αgenerate␈αlibraries␈αof␈αmanipulation␈αroutines,␈αso␈αthat␈αcomplex␈αoperations␈αmay
␈↓ ↓H␈β
⊂␈↓βbe␈α
easily␈α
and␈α
quickly␈α
programmed␈α
by␈α
combining␈α
pre-defined␈α
sub␈α
tasks.
␈↓ ↓H␈β
L␈↓βVAL␈α∞operates␈α∞in␈α∞real-time.␈α≠Continuous,␈α
real-time␈α
computation␈α
permits␈α
complex␈α
motions␈α
to␈α
be␈α
quickly
␈↓ ↓H␈β
j␈↓βexecuted␈αwith␈αefficient␈αuse␈αof␈αcomputer␈αmemory␈αand␈αreduction␈αin␈αoverall␈αsystem␈αcomplexity.␈α⊗The␈αVAL
␈↓ ↓H␈βλ␈↓βsystem␈α⊂continuously␈α⊂generates␈α⊂robot␈α⊂control␈α⊂commands,␈α⊂and␈α⊂simultaneously␈α⊂interacts␈α⊂with␈α⊂a␈α⊂human
␈↓ ↓H␈β&␈↓βoperator␈α
or␈α
other␈α
interactive␈α
controller.␈α∀This␈α
permits␈α
on-line␈α
program␈α
generation␈α
and␈α
modifications.
␈↓ ↓H␈βb␈↓βVAL␈αis␈αself␈αcontained.␈α⊗The␈αentire␈αVAL␈αlanguage,␈αprogram␈αdevelopment,␈αand␈αmanipulator␈αcontrol␈αsystem
␈↓ ↓H␈β␈↓βis␈α
contained␈α
within␈α
a␈α
single,␈α
compact,␈α
low␈α
cost␈α
computer/controller␈α
unit.
␈↓ ↓H␈β<␈↓βVAL␈α∞is␈α∞easily␈α
used.␈α~This␈α
guide␈α
contains␈α
most␈α
of␈α
the␈α
information␈α
required␈α
to␈α
be␈α
able␈α
to␈α
create␈α
robot
␈↓ ↓H␈βZ␈↓βcontrol␈α
programs␈α
and␈α
to␈α
operate␈α
a␈α
computer␈α
controlled␈α
robot.
␈↓ F␈β⎇␈↓↓[2]
␈↓ αZ␈β↓H␈↓λVAL - THE UNIMATION ROBOT CONTROL SYSTEM
␈↓ ↓H␈βα@␈↓βPreceding␈α∀the␈α∀monitor␈α∀instructions␈α∀described␈α∀below␈α∀are␈α∀two␈α∀symbols␈α∪which␈α∪indicate␈α∪when␈α∪each
␈↓ ↓H␈βα↑␈↓βcommand␈αcan␈αbe␈α
executed.␈α∀A␈α
period␈α
(.)␈α
signifies␈α
that␈α
the␈α
command␈α
can␈α
be␈α
performed␈α
when␈α
VAL␈α
is␈α
in␈α
its
␈↓ ↓H␈βα|␈↓βtop␈α∂level␈α∂monitor␈α∂mode␈α∂and␈α∂no␈α∂user␈α∂program␈α∂is␈α∂being␈α∂executed.␈α≡An␈α∂asterisk␈α∂(*)␈α∞indicates␈α∞that␈α∞the
␈↓ ↓H␈ββ~␈↓βcommand␈α
can␈α
be␈α
performed␈α
at␈α
the␈α
same␈α
time␈α
that␈α
VAL␈α
is␈α
executing␈α
a␈α
user␈αprogram.␈α_If␈αboth␈αsymbols
␈↓ ↓H␈ββ8␈↓βare␈α
present,␈α
then␈α
the␈α
command␈α
can␈α
be␈α
always␈α
be␈α
performed.
␈↓ ↓H␈ββt␈↓βFor␈α⊃both␈α⊃monitor␈α⊃and␈α⊃program␈α⊃instructions,␈α⊂items␈α⊂enclosed␈α⊂in␈α⊂brackets␈α⊂([...])␈α are␈α⊂optional.␈α Angle
␈↓ ↓H␈β∧∩␈↓βbrackets␈α⊂(<...>)␈α⊂are␈α⊂used␈α⊂to␈α⊂indicate␈α⊂that␈α⊂the␈α⊂enclosed␈α⊂item␈α⊂is␈α⊂the␈α⊂name␈α∂of␈α∂the␈α∂actual␈α∂argument␈α∂to
␈↓ ↓H␈β∧0␈↓βappear.
␈↓ ∧⊃␈β¬$␈↓↓MONITOR COMMANDS:  DEFINING POSITIONS
␈↓ ↓H␈β¬f␈↓βThe␈α∩position␈α∩and␈α∩orientation␈α∩of␈α∩a␈α∩manipulator␈α∩can␈α∩be␈α∩stored␈α∩within␈α∩the␈α⊃computer␈α⊃using␈α⊃either␈α⊃a
␈↓ ↓H␈βε∧␈↓βtransformation␈α
or␈α
a␈α
precision␈α
point.
␈↓ ↓H␈βε@␈↓βA␈α∞transformation␈α∞is␈α∞a␈α∞cartesian␈α∞description␈α∞of␈α
the␈α
position␈α
and␈α
orientation␈α
of␈α
the␈α
manipulator's␈α
hand.
␈↓ ↓H␈βε↑␈↓βThe␈αhand's␈αX,␈αY,␈αZ␈αlocation␈αis␈αstored␈αas␈αa␈αvector␈αand␈αits␈αorientation␈αis␈αstored␈αas␈αa␈α3␈αby␈α3␈αmatrix.␈α⊗This
␈↓ ↓H␈βε|␈↓βrepresentation␈α∃is␈α∃advantageous␈α∃where␈α∃relative␈α∃translations␈α∃and␈α∃rotations␈α∃are␈α∃to␈α∃be␈α∀performed.
␈↓ ↓H␈βπ~␈↓βFurthermore,␈αbecause␈αtransformations␈αonly␈αrefer␈αto␈αthe␈αposition␈αand␈αorientation␈αof␈αthe␈αhand,␈αthey␈αare
␈↓ ↓H␈βπ8␈↓βindependent␈α
of␈α
the␈α
geometry␈α
of␈α
the␈α
manipulator.
␈↓ ↓H␈βπt␈↓βDue␈α∞to␈α∞the␈α∞complexity␈α∞of␈α∞the␈α∞computations␈α∞necessary␈α∞to␈α∞convert␈α∞between␈α
joint␈α
angles␈α
and␈α
cartesian
␈↓ ↓H␈βλ∩␈↓βcoordinates,␈α
using␈α
transformations␈α
to␈α
store␈α
the␈α
position␈α
and␈α
orientation␈α
of␈α
the␈α
manipulator␈α
can,␈α
at␈α
times,
␈↓ ↓H␈βλ0␈↓βbe␈αsomewhat␈αinaccurate.␈α⊗If␈α
high␈α
precision␈α
is␈α
required,␈α
the␈α
manipulator's␈α
position␈α
and␈α
orientation␈α
can␈α
be
␈↓ ↓H␈βλN␈↓βstored␈αas␈αa␈α
precision␈α
point.␈α∀Precision␈α
points␈α
save␈α
the␈α
joint␈α
angles␈α
of␈α
the␈α
manipulator␈α
and␈α
are␈α
therefore
␈↓ ↓H␈βλl␈↓βcapable␈α∂of␈α∂achieving␈α∂full␈α∞precision␈α∞playback.␈α≤For␈α∞most␈α∞instructions␈α∞requiring␈α∞a␈α∞manipulator␈α∞position,
␈↓ ↓H␈β	
␈↓βprecision␈α
points␈α
and␈α
transformations␈α
can␈α
be␈α
used␈α
interchangeably.
␈↓ ↓H␈β	F␈↓βThe␈α
names␈α
of␈α
both␈α
precision␈α
points␈α
and␈α
transformations␈α
consist␈α
of␈α
a␈α
string␈α
of␈α
six␈α
characters␈α
starting
␈↓ ↓H␈β	d␈↓βwith␈α∂a␈α∂letter␈α∂and␈α∂followed␈α∂by␈α∂any␈α∂sequence␈α∂of␈α∂letters,␈α∂numbers,or␈α∂periods(.).␈α≡Precision␈α∂points␈α∞and
␈↓ ↓H␈β
α␈↓βtransformations␈α
are␈αdistinguished␈αby␈αthe␈αfact␈αthat␈αprecision␈αpoint␈αnames␈αmust␈αalways␈αbe␈αpreceded␈αby
␈↓ ↓H␈β
 ␈↓βthe␈α∩symbol␈α∩"#".␈α$The␈α∩number␈α∩of␈α∩precision␈α∩points␈α∩and␈α∩transformations␈α∩that␈α⊃can␈α⊃be␈α⊃stored␈α⊃in␈α⊃the
␈↓ ↓H␈β
>␈↓βcomputer␈α
is␈α
only␈α
limited␈α
by␈α
the␈α
size␈α
of␈α
the␈α
computer␈α
memory.
␈↓ ↓H␈β
z␈↓βThere␈α⊃are␈α⊃several␈α⊃commands␈α⊃that␈α⊃can␈α⊃be␈α⊃used␈α⊂for␈α⊂defining␈α⊂positions␈α⊂and␈α⊂determining␈α⊂the␈α⊂current
␈↓ ↓H␈β_␈↓βlocation␈α
of␈α
the␈α
arm:
␈↓ ↓H␈βr␈↓¬POINT <position>
␈↓ ↓p␈β⊂␈↓β[␈α.␈α*]␈αThe␈αcurrent␈αvalue␈αof␈αthe␈α<position>␈αis␈αprinted␈αand␈αany␈αof␈αits␈αcoordinates␈αmay␈αbe␈αmodified␈αby
␈↓ ↓p␈β.␈↓βtyping␈α∞a␈α∞new␈α∞value␈α
after␈α
the␈α
query␈α
CHANGES?.␈α~Coordinate␈α
values␈α
must␈α
be␈α
separated␈α
by␈α
commas
␈↓ ↓p␈βL␈↓βand␈αvalues␈αthat␈αare␈αnot␈αto␈αbe␈αchanged␈αcan␈αbe␈αomitted.␈α⊗Changes␈αare␈αcontinuously␈αasked␈α
for␈α
until␈α
no
␈↓ ↓p␈βj␈↓βchange␈αin␈αthe␈αtransform␈αis␈αmade.␈α_If␈αthe␈αposition␈αvariable␈αis␈αa␈αprecision␈αpoint,␈αits␈α6␈αjoint␈αangles␈αare
␈↓ ↓p␈β
λ␈↓βprinted.␈α~Otherwise␈α
the␈α
position␈αvariable␈αis␈αa␈αtransformation␈αand␈αits␈αvalue␈αis␈αtyped␈αas␈α(X,Y,Z,O,A,T).
␈↓ ↓p␈β
&␈↓βThe␈α∀X,Y,Z␈α∪specify␈α∪the␈α∪position␈α∪of␈α∪a␈α∪point␈α∪centrally␈α∪located␈α∪between␈α∪the␈α∪finger␈α∪tips␈α∪in␈α∪table
␈↓ ↓p␈β
D␈↓βcoordinates.␈α∨O,A,T␈α∂specify␈α∂the␈α∂orientation␈α∂of␈α∂the␈α∂hand␈α∂(Euler␈α∂angles).␈α≡With␈α∂all␈α∂three␈α∂angles␈α∂(in
␈↓ ↓p␈β
b␈↓βdegrees)␈α∞zero,␈α∞the␈α∞hand␈α∞points␈α∞in␈α∞the␈α∞negative␈α∞Y␈α∞direction␈α∞with␈α
the␈α
fingers␈α
in␈α
a␈α
horizontal␈α
plane.
␈↓ ↓p␈β∞␈↓βThe␈αorientation␈αvector␈αwhich␈αpoints␈αfrom␈αone␈αfinger␈αtip␈αto␈αthe␈αother␈αis␈αaligned␈αalong␈αthe␈αX␈αaxis.␈α⊗O
␈↓ ↓p␈β∞≡␈↓βspecifies␈αa␈αrotation␈αof␈αthe␈αorientation␈αvector␈αabout␈αa␈αvertical␈αdirection.␈α⊗Thus␈αat␈α
O=90deg,␈α
the␈α
hand,
␈↓ ↓p␈β∞<␈↓βstill␈α∂horizontal,␈α∂would␈α∂point␈α∂along␈α∂the␈α∂positive␈α∞X␈α∞direction.␈α≤A␈α∞is␈α∞a␈α∞rotation␈α∞about␈α∞the␈α∞orientation
␈↓ ↓p␈β∞Z␈↓βvector.␈α⊗With␈αA=90deg,␈αthe␈αhand␈αalways␈αpoints␈αstraight␈αdown.␈α∃T␈α
is␈α
a␈α
final␈α
rotation␈α
about␈α
the␈α
axis␈α
of
␈↓ ↓p␈β∞x␈↓βthe␈α
wrist␈α
and␈α
corresponds␈α
to␈α
a␈α
rotation␈α
of␈α
the␈α
final␈α
(#6)␈α
joint.
␈↓ F␈β⎇␈↓↓[3]
␈↓ ↓H␈β↓H␈↓¬DPOINT [<position1>],...,[<position8>]
␈↓ ↓p␈β↓f␈↓βDeletes␈α⊃the␈α⊃values␈α⊃of␈α⊃up␈α⊃to␈α⊃eight␈α⊂specified␈α⊂position␈α⊂variables.␈α This␈α⊂operation␈α⊂can␈α⊂be␈α⊂used␈α⊂to
␈↓ ↓p␈βα∧␈↓βrecover␈α∞most␈α∞of␈α∞the␈α∞memory␈α∞storage␈α∞required␈α∞by␈α∞position␈α∞variables␈α∞which␈α
are␈α
no␈α
longer␈α
needed.
␈↓ ↓p␈βα"␈↓βDeleted␈α∞positions␈α∞cannot␈α∞be␈α∞listed␈α∞using␈α∞any␈α∞of␈α∞the␈α∞print␈α∞out␈α∞routines␈α∞and␈α∞attempts␈α∞to␈α
reference
␈↓ ↓p␈βα@␈↓βthese␈α∞variables␈α∞within␈α∞program␈α∞statements␈α
will␈α
generate␈α
an␈α
error␈α
message␈α
at␈α
execution␈α
time␈α
until
␈↓ ↓p␈βα↑␈↓βtheir␈α
values␈α
are␈α
re-defined.
␈↓ ↓H␈ββ~␈↓¬HERE <position>␈↓β 
␈↓ ↓p␈ββ8␈↓β[␈α.␈α*]␈αDefines␈αthe␈αvalue␈αof␈αthe␈α<position>␈αvariable␈αto␈αbe␈αequal␈αto␈αthe␈αcurrent␈αarm␈αposition.␈α⊗As␈αwith
␈↓ ↓p␈ββV␈↓βPOINT,␈α
post␈α
modification␈α
of␈α
the␈α
position␈α
coordinates␈α
is␈α
permitted.
␈↓ ↓H␈β∧∩␈↓¬WHERE
␈↓ ↓p␈β∧0␈↓β[␈α.␈α*]␈αPrints␈αout␈α
the␈α
current␈α
location␈α
of␈α
the␈α
arm␈α
in␈α
Euler␈α
and␈α
joint␈α
angles␈α
along␈α
with␈α
the␈α
current␈α
hand
␈↓ ↓p␈β∧N␈↓βopening.
␈↓ ↓H␈β¬
␈↓¬BASE [<dX>],[<dY>],[<Z rotation>]
␈↓ ↓p␈β¬(␈↓β[␈α.␈α]␈αOffsets␈αand␈αrotates␈αthe␈αlocation␈αof␈α
the␈α
base␈α
of␈α
the␈α
manipulator.␈α∀Normally␈α
when␈α
the␈α
VAL␈α
system
␈↓ ↓p␈β¬F␈↓βis␈α∞initialized,␈α∞the␈α∞base␈α∞of␈α∞the␈α∞arm␈α∞is␈α∞assumed␈α∞to␈α∞be␈α∞located␈α∞at␈α∞position␈α
{0,0,0}␈α
and␈α
its␈α
orientation
␈↓ ↓p␈β¬d␈↓βsuch␈αthat␈αin␈αthe␈αREADY␈αposition,␈αthe␈αlinks␈αof␈αthe␈αarm␈αare␈αroughly␈αpointed␈αalong␈αthe␈αpositive␈αY␈αaxis.
␈↓ ↓p␈βεα␈↓βIf␈αthe␈αbase␈αis␈αactually␈αlocated␈αat␈αsome␈αother␈α
position␈α
{dX,dY,0}␈α
and␈α
is␈α
rotated␈α
about␈α
the␈α
Z␈α
axis␈α
by␈α
an
␈↓ ↓p␈βε ␈↓βangle␈α∂of␈α∂<Z␈α∂rotation>,␈α∂the␈α∂BASE␈α∂command␈α∂can␈α∂be␈α∂used␈α∂to␈α∂modify␈α∞the␈α∞computations␈α∞necessary␈α∞to
␈↓ ↓p␈βε>␈↓βconvert␈α
between␈α
joint␈α
angles␈α
and␈α
cartesian␈α
coordinates␈α
to␈α
account␈α
for␈α
these␈α
alterations.
␈↓ ↓H␈βεz␈↓¬TOOL <tool#> = [<dX>],[<dY>],[<dZ>],[<rZ>]
␈↓ ↓p␈βπ_␈↓β[␈α.␈α⊗]␈αIf␈α
the␈α
dimensions␈α
of␈α
<tool#>␈α
are␈α
specified,␈α
the␈α
new␈α
tool␈α
dimensions␈α
are␈α
set␈α
and␈α
the␈α
current␈α
tool
␈↓ ↓p␈βπ6␈↓βis␈αset␈αequal␈α
to␈α
the␈α
specified␈α
dimensions.␈α∀If␈α
no␈α
tool␈α
dimensions␈α
are␈α
given␈α
or␈α
if␈α
dimensions␈α
of␈α
zero␈α
are
␈↓ ↓p␈βπT␈↓βspecified,␈α⊃the␈α⊃current␈α⊃tool␈α⊃is␈α⊃set␈α⊃equal␈α⊃to␈α⊃the␈α⊃dimensions␈α⊃which␈α⊃were␈α⊃previously␈α⊃specified␈α⊂for
␈↓ ↓p␈βπr␈↓β<tool#>.␈α~The␈α
permitted␈α
tool␈α
numbers␈α
are␈α
0␈α
through␈α
4.␈α→Tool␈α#0␈αalways␈αhas␈αthe␈αdimensions␈αof␈αthe
␈↓ ↓p␈βλ⊂␈↓βdefault␈αtool␈αand␈αcannot␈αbe␈αaltered.␈α_The␈αdimensions␈αof␈αthe␈αcurrent␈αtool␈αare␈αautomatically␈αtaken␈αinto
␈↓ ↓p␈βλ.␈↓βaccount␈αwhenever␈αa␈αconversion␈αfrom␈αjoint␈αangles␈αto␈αtool␈αposition␈αor␈αtool␈αposition␈αto␈αjoint␈αangles␈αis
␈↓ ↓p␈βλL␈↓βcomputed.␈α_The␈αtool␈αdimensions␈αalter␈αwhere␈αVAL␈αthinks␈αthe␈αtool␈αtip␈αis␈αby␈αfirst␈αadding␈αa␈αrotation␈αof
␈↓ ↓p␈βλj␈↓β<rZ>␈α⊂to␈α⊂the␈α⊂last␈α⊂joint␈α⊂of␈α⊂the␈α⊂manipulator␈α⊂and␈α⊂then␈α⊂adding␈α⊂the␈α⊂offsets␈α⊂of␈α⊂<dX>,<dY>,<dZ>␈α⊂to␈α⊂the
␈↓ ↓p␈β	λ␈↓βposition␈α
of␈α
the␈α
arm␈α
wrist␈α
(the␈α
end␈α
of␈α
joint␈α
#3)␈α
along␈α
the␈α
x,y,z␈α
axes␈α
of␈α
the␈α
tool␈α
coordinate␈α
system
␈↓ ↓p␈β	&␈↓βrespectively.␈α~The␈α
tool␈α
command␈αcannot␈αbe␈αexecuted␈αwhen␈αthe␈αarm␈αis␈αunder␈αprogram␈αcontrol␈αor␈αin
␈↓ ↓p␈β	D␈↓βmanual␈α
control␈α
and␈α
operating␈α
in␈α
WORLD␈α
or␈α
TOOL␈α
coordinates.
␈↓ ∧≡␈β
~␈↓↓MONITOR COMMANDS:  PROGRAM EDITING
␈↓ ↓H␈β
\␈↓βDistinct␈α∞sequences␈α∞of␈α∞instructions␈α∞to␈α∞be␈α∞executed␈α∞are␈α∞stored␈α∞as␈α∞user␈α∞programs␈α∞within␈α
the␈α
computer.
␈↓ ↓H␈β
z␈↓βThe␈α∩number␈α∩of␈α∩programs␈α∩that␈α∩can␈α∩be␈α∩saved␈α∩is␈α∩limited␈α⊃only␈α⊃by␈α⊃the␈α⊃amount␈α⊃of␈α⊃computer␈α⊃memory
␈↓ ↓H␈β_␈↓βavailable.␈α~Programs␈αare␈αreferred␈αto␈αby␈αsix␈αcharacter␈αnames␈αwhich,␈αlike␈αposition␈αvariables,␈αmust␈αbegin
␈↓ ↓H␈β6␈↓βwith␈α
a␈α
letter␈α
and␈α
can␈α
be␈α
followed␈α
by␈α
any␈α
sequence␈α
of␈α
letters,␈α
numbers,␈α
or␈α
a␈α
period.
␈↓ ↓H␈βr␈↓βEach␈α∪instruction␈α∪within␈α∪a␈α∪program␈α∩is␈α∩referred␈α∩to␈α∩by␈α∩a␈α∩unique␈α∩step␈α∩number.␈α$Step␈α∩numbers␈α∩are
␈↓ ↓H␈β⊂␈↓βnumbered␈αconsecutively␈αand␈αare␈αautomatically␈αadjusted␈αwhenever␈αinstructions␈αare␈αinserted␈αor␈αdeleted.
␈↓ ↓H␈β.␈↓βIn␈α∩addition,␈α∩program␈α∩steps␈α⊃can␈α⊃contain␈α⊃step␈α⊃labels.␈α"Step␈α⊃labels␈α⊃are␈α⊃used␈α⊃for␈α⊃program␈α⊃controlled
␈↓ ↓H␈βL␈↓βbranching␈α
and␈α
looping.␈α∀Step␈α
labels␈α
are␈α
integer␈α
numbers␈α
ranging␈α
from␈α
0␈α
to␈α
32767.
␈↓ ↓H␈β
λ␈↓βPrograms␈α
can␈α
be␈α
developed␈α
off-line␈αin␈αany␈αcomputer␈αcapable␈αof␈αgenerating␈αASCII␈αtext␈αstrings␈αor␈αthey
␈↓ ↓H␈β
&␈↓βcan␈α∞be␈α∞developed␈α∞using␈α∞the␈α∞program␈α∞editing␈α∞routines␈α∞which␈α
are␈α
a␈α
standard␈α
feature␈α
of␈α
this␈α
language.
␈↓ ↓H␈β
D␈↓βThese␈α
editing␈α
routines␈α
can␈α
be␈α
used␈α
for␈αboth␈αmodifying␈αexisting␈αprograms␈αand␈αcreating␈αnew␈αprograms.
␈↓ ↓H␈β
b␈↓βThe␈α
editing␈α
instructions␈α
are␈α
explained␈α
below.
␈↓ ↓H␈β∞<␈↓¬EDIT [<program>],[<step>]
␈↓ ↓p␈β∞Z␈↓β[␈α.␈α*]␈α
Permits␈α
the␈α
user␈α
to␈α
create␈α
or␈α
modify␈α
the␈α
<program>␈α
starting␈α
at␈α
step␈α
<step>.␈α∀If␈α
no␈α
step␈α
number
␈↓ ↓p␈β∞x␈↓βis␈αspecified,␈αediting␈αproceeds␈αfrom␈αthe␈αstep␈αwere␈αthe␈αlast␈αediting␈αsession␈αwas␈αterminated␈α-1.␈α⊗If␈αno
␈↓ ↓p␈β∂⊗␈↓βprogram␈α
is␈α
specified,␈α
the␈α
last␈α
program␈α
edited␈α
is␈α
re-opened.
␈↓ F␈β⎇␈↓↓[4]
␈↓ ↓H␈β↓f␈↓βOnce␈α
having␈α
entered␈α
the␈α
EDIT␈α
mode,␈α
the␈α
following␈α
edit␈α
functions␈α
may␈α
be␈α
invoked.
␈↓ ↓H␈βα@␈↓¬<any program instruction>
␈↓ ↓p␈βα↑␈↓β[␈α.␈α*]␈αReplaces␈αthe␈αprogram␈α
instruction␈α
stored␈α
at␈α
the␈α
current␈α
step␈α
with␈α
the␈α
instruction␈α
typed␈α
in.␈α∀The
␈↓ ↓p␈βα|␈↓βnext␈α
step␈α
is␈α
then␈α
displayed␈α
for␈α
editing.
␈↓ ↓H␈ββ8␈↓¬<carriage return>
␈↓ ↓p␈ββV␈↓β[␈α.␈α*]␈αTyping␈αan␈αempty␈α
line␈α
(carriage␈α
return)␈α
leaves␈α
the␈α
current␈α
step␈α
unaltered␈α
and␈α
displays␈α
the␈α
next
␈↓ ↓p␈ββt␈↓βinstruction␈α
for␈α
editing.
␈↓ ↓H␈β∧0␈↓¬C <program>,[<step>]
␈↓ ↓p␈β∧N␈↓β[␈α.␈α*]␈αChanges␈αEDITing␈αfrom␈αthe␈αcurrent␈αprogram␈α
to␈α
the␈α
new␈α
user␈α
<program>␈α
starting␈α
at␈α
step␈α
<step>.
␈↓ ↓p␈β∧l␈↓β<step>␈α
can␈α
be␈α
omitted␈α
and␈α
editing␈α
will␈α
begin␈α
with␈α
the␈α
first␈α
program␈α
instruction.
␈↓ ↓H␈β¬(␈↓¬D [<nstep>]
␈↓ ↓p␈β¬F␈↓β[␈α∂.␈α∂*]␈α∂Deletes␈α∂the␈α∂specified␈α∂number␈α∂of␈α∂instructions␈α∂starting␈α∂with␈α∂the␈α∂current␈α∞instruction␈α∞step.␈α≤If
␈↓ ↓p␈β¬d␈↓β<nstep>␈α
is␈α
not␈α
specified,␈α
only␈α
the␈α
current␈α
step␈α
is␈α
deleted.
␈↓ ↓H␈βε ␈↓¬E
␈↓ ↓p␈βε>␈↓β[␈α
.␈α
*]␈α
Exits␈α
the␈α
EDIT␈α
mode␈α
and␈α
returns␈α
to␈α
MONITOR␈α
mode.
␈↓ ↓H␈βεz␈↓¬I
␈↓ ↓p␈βπ_␈↓β[␈α
.␈α*]␈αMoves␈αinstructions␈αstarting␈αat␈αthe␈αcurrent␈αstep␈αdown␈αone␈αand␈αinserts␈αin␈αits␈αplace␈αany␈αmotion
␈↓ ↓p␈βπ6␈↓βinstruction␈α
that␈α
is␈α
typed␈α
in.␈α∀The␈α
process␈α
is␈α
repeated␈α
until␈α
an␈α
empty␈α
line␈α
is␈α
typed.
␈↓ ↓H␈βπr␈↓¬L
␈↓ ↓p␈βλ⊂␈↓β[␈α
.␈α
*]␈α
Leaves␈α
the␈α
current␈α
step␈α
unaltered␈α
and␈α
displays␈α
the␈α
previous␈α
step␈α
for␈α
editing.
␈↓ ↓H␈βλL␈↓¬P [<nstep>]
␈↓ ↓p␈βλj␈↓β[␈α
.␈α
*]␈α
Prints␈α
the␈α
next␈α
<nstep>␈α
number␈αof␈αprogram␈αsteps␈αand␈αsets␈αthe␈αcurrent␈αline␈αnumber␈αequal␈αto
␈↓ ↓p␈β	λ␈↓βthe␈α
last␈α
line␈α
printed.
␈↓ ↓H␈β	D␈↓¬R [<arg#>],[<value>]
␈↓ ↓p␈β	b␈↓β[␈α∂.␈α∂*]␈α∂Replaces␈α∂argument␈α∂number␈α∂<arg#>␈α∂of␈α∂the␈α∂current␈α∂program␈α∂instruction␈α∂with␈α∂the␈α∂new␈α∂value
␈↓ ↓p␈β
␈↓βspecified␈α∂by␈α∂<value>.␈α≡If␈α∂<arg#>␈α∂is␈α∂negative,␈α∂zero,␈α∂or␈α∂omitted,␈α∂the␈α∂first␈α∞argument␈α∞is␈α∞replaced.␈α≤If
␈↓ ↓p␈β
≡␈↓β<arg#>␈α∂is␈α∂greater␈α∂than␈α∂the␈α∂number␈α∂of␈α∂possible␈α∂arguments,␈α∂the␈α∂last␈α∞argument␈α∞is␈α∞changed.␈α≤"SETI"
␈↓ ↓p␈β
<␈↓βinstructions␈α
and␈α
instructions␈α
requiring␈α
string␈α
arguments␈α
cannot␈α
be␈α
altered␈α
using␈α
this␈α
EDIT␈α
function.
␈↓ ↓H␈β
x␈↓¬S [<step>]
␈↓ ↓p␈β⊗␈↓β[␈α.␈α*]␈αLeaves␈αthe␈αcurrent␈αstep␈αunaltered␈αand␈αdisplays␈αthe␈αinstruction␈αwhich␈αis␈αat␈αstep␈α<step>␈αin␈αthe
␈↓ ↓p␈β4␈↓βuser␈α
program.␈α∀If␈α
<step>␈α
is␈α
omitted,␈α
the␈α
first␈α
instruction␈α
of␈α
the␈α
program␈α
is␈α
displayed␈α
for␈α
editing.
␈↓ ↓H␈βp␈↓¬T
␈↓ ↓p␈β∞␈↓β[␈α.␈α*]␈αInitiates␈αprogram␈αteach␈αmode.␈α_In␈αthis␈αmode,␈αeach␈αtime␈αthat␈αthe␈αRECORD␈αbutton␈αon␈αthe␈αmanual
␈↓ ↓p␈β,␈↓βcontrol␈α∩box␈α∩is␈α⊃pressed,␈α⊃a␈α⊃MOVEI␈α⊃instruction␈α⊃is␈α⊃generated␈α⊃which␈α⊃contains␈α⊃as␈α⊃its␈α⊃arguments,␈α⊃the
␈↓ ↓p␈βJ␈↓βcurrent␈α∀arm␈α∀position␈α∪(in␈α∪joint␈α∪angles),␈α∪the␈α∪hand␈α∪opening,␈α∪and␈α∪the␈α∪speed␈α∪of␈α∪the␈α∪motion.␈α&By
␈↓ ↓p␈βh␈↓βsuccessively␈αmanually␈αpositioning␈αthe␈αarm␈αand␈αpressing␈αthe␈αRECORD␈αbutton,␈αa␈αcomplete␈αmotion␈αtask
␈↓ ↓p␈β
ε␈↓βcan␈α
be␈α
taught.␈α∀This␈α
mode␈α
is␈α
terminated␈α
by␈α
typing␈α
a␈α
carriage␈α
return␈α
on␈α
the␈α
console␈α
keyboard.
␈↓ αe␈β
z␈↓↓MONITOR COMMANDS:  POSITION VARIABLE AND PROGRAM LISTING
␈↓ ↓H␈β∞[␈↓βThe␈α
following␈α
commands␈α
are␈α
used␈α
to␈α
get␈α
hard␈α
copies␈α
of␈α
programs␈α
and␈α
position␈α
variables.␈α∀The␈α
execution
␈↓ ↓H␈β∞y␈↓βof␈α∀these␈α∀commands␈α∀can␈α∀be␈α∀aborted␈α∪by␈α∪typing␈α∪a␈α∪carriage-return␈α∪(CR)␈α∪character␈α∪on␈α∪the␈α∪console
␈↓ ↓H␈β∂↔␈↓βkeyboard.
␈↓ F␈β⎇␈↓↓[5]
␈↓ ↓H␈β↓f␈↓¬LISTT [<position1>],...,[<position8>]
␈↓ ↓p␈βα∧␈↓β[␈α.␈α*]␈αTypes␈αout␈αthe␈αvalues␈αof␈αup␈αto␈αeight␈αselected␈αposition␈αvariables.␈α⊗If␈αno␈αposition␈αvariable␈αnames
␈↓ ↓p␈βα"␈↓βare␈α
specified,␈α
the␈α
values␈α
of␈α
all␈α
existing␈α
position␈α
variables␈α
will␈α
be␈α
printed.
␈↓ ↓H␈βα↑␈↓¬LISTP <program>,[<step1>],[<step2>]
␈↓ ↓p␈βα|␈↓β[␈α.␈α*]␈αTypes␈αout␈αthe␈αuser␈α<program>␈αfrom␈α<step1>␈αto␈α<step2>.␈α⊗If␈αthe␈αstep␈αnumbers␈αare␈αomitted␈αthe
␈↓ ↓p␈ββ~␈↓βentire␈α
program␈α
will␈α
be␈α
printed.
␈↓ ↓H␈ββV␈↓¬PROGS
␈↓ ↓p␈ββt␈↓β[␈α
.␈α
*]␈α
Prints␈α
out␈α
the␈α
names␈α
of␈α
all␈α
user␈α
programs␈α
that␈α
have␈α
at␈α
least␈α
one␈α
program␈α
step␈α
defined.
␈↓ αt␈β∧h␈↓↓MONITOR COMMANDS:  PROGRAM AND POSITION DATA STORAGE
␈↓ ↓H␈β¬*␈↓βThe␈α∩following␈α⊃commands␈α⊃are␈α⊃used␈α⊃to␈α⊃store␈α⊃and␈α⊃retrieve␈α⊃user␈α⊃programs␈α⊃and␈α⊃position␈α⊃data␈α⊃on␈α⊃the
␈↓ ↓H␈β¬H␈↓βmini-floppy␈α
disk.␈α~The␈αdisk␈αis␈αlogically␈αdivided␈αinto␈αfiles.␈αFiles␈αare␈αreferred␈αto␈αby␈αsix␈αcharacter␈αnames,
␈↓ ↓H␈β¬f␈↓βwhich␈αmust␈αbegin␈αwith␈αa␈αletter␈α(A-Z)␈αfollowed␈αby␈αany␈αcombination␈αof␈αletters␈αand␈αnumbers.␈α⊗In␈αall␈αcases
␈↓ ↓H␈βε∧␈↓βwhere␈αan␈αoperation␈αmay␈αresult␈αin␈αdestructively␈αwriting␈αover␈αvalid␈αdata␈αwhich␈αis␈αcontained␈αon␈αthe␈αdisk,
␈↓ ↓H␈βε"␈↓βverification␈αis␈αfirst␈αrequired␈αbefore␈αthe␈αoperation␈αis␈αperformed.␈α⊗The␈αexecution␈αof␈αthese␈αcommands␈αcan
␈↓ ↓H␈βε@␈↓βbe␈α
aborted␈α
by␈α
typing␈α
carriage-return␈α
at␈α
any␈α
time.
␈↓ ↓H␈βπ~␈↓¬ERASE
␈↓ ↓p␈βπ8␈↓β[␈α.␈α*]␈αThis␈αroutine␈αcompletely␈αerases␈α
the␈α
contents␈α
of␈α
the␈α
floppy␈α
diskette␈α
and␈α
initializes␈α
the␈α
diskette's
␈↓ ↓p␈βπV␈↓βfile␈α
directory␈α
information.
␈↓ ↓H␈βλ∩␈↓¬LISTF
␈↓ ↓p␈βλ0␈↓β[␈α.␈α*]␈αTypes␈αthe␈αfile␈αdirectory␈αof␈αthe␈αdiskette␈αcurrently␈αloaded␈α
in␈α
the␈α
mini-floppy␈α
disk␈α
and␈α
prints␈α
the
␈↓ ↓p␈βλN␈↓βamount␈α
of␈α
space␈α
still␈α
available␈α
for␈α
storage.
␈↓ ↓H␈β	
␈↓¬STORET <file>
␈↓ ↓p␈β	(␈↓β[␈α
.␈α
*]␈α
Stores␈α
the␈α
names␈α
and␈α
values␈α
of␈α
all␈α
defined␈α
position␈α
variables␈α
in␈α
the␈α
specified␈α
floppy␈α
disk␈α
file.
␈↓ ↓H␈β	d␈↓¬LOADT <file>
␈↓ ↓p␈β
α␈↓β[␈α⊂.␈α⊂*]␈α⊂Loads␈α⊂all␈α⊂of␈α⊂the␈α⊂position␈α∂variables␈α∂which␈α∂are␈α∂contained␈α∂in␈α∂the␈α∂specified␈α∂disk␈α∂file␈α∂into␈α∂the
␈↓ ↓p␈β
 ␈↓βcomputer's␈αmemory.␈α⊗Note␈αthat␈αif␈αa␈αposition␈α
variable␈α
is␈α
already␈α
defined␈α
and␈α
a␈α
variable␈α
with␈α
the␈α
same
␈↓ ↓p␈β
>␈↓βname␈αis␈αcontained␈αin␈αthe␈αdisk␈αfile,␈αthe␈αposition's␈αvalue␈αwill␈αbe␈αreplaced␈αby␈αthe␈αvalue␈αread␈αfrom␈αthe
␈↓ ↓p␈β
\␈↓βdisk.
␈↓ ↓H␈β_␈↓¬STOREP <file> = [<program1>],...,[<program7>]
␈↓ ↓p␈β6␈↓β[␈α
.␈α
*]␈α
Stores␈α
up␈α
to␈α
seven␈α
specified␈α
programs␈α
in␈α
<file>.␈α
If␈α
no␈α
program␈α
names␈α
are␈α
given,␈α
all␈αexisting
␈↓ ↓p␈βT␈↓βprograms␈α
are␈α
saved␈α
in␈α
the␈α
specified␈α
file.
␈↓ ↓H␈β⊂␈↓¬LOADP <file>
␈↓ ↓p␈β.␈↓β[␈α∞.␈α∞*]␈α∞Loads␈α∞the␈α∞program's␈α∞contained␈α∞in␈α∞<file>␈α∞into␈α∞the␈α∞computer's␈α∞memory.␈α≠If␈α
a␈α
program␈α
already
␈↓ ↓p␈βL␈↓βexists␈α⊃which␈α⊂has␈α⊂the␈α⊂same␈α⊂name␈α⊂as␈α⊂a␈α⊂program␈α⊂contained␈α⊂in␈α⊂the␈α⊂disk␈α⊂file,it␈α⊂will␈α⊂be␈α⊂deleted␈α⊂and
␈↓ ↓p␈βj␈↓βreplaced␈α
by␈α
the␈α
program␈α
contained␈α
on␈α
the␈α
disk.
␈↓ ↓H␈β
&␈↓¬DELETE <file>
␈↓ ↓p␈β
D␈↓β[␈α
.␈α
*]After␈α
requesting␈α
confirmation,␈α
the␈α
specified␈α
file␈α
is␈α
deleted␈α
from␈α
the␈α
disk.
␈↓ ↓H␈β∞␈↓¬FORMAT
␈↓ ↓p␈β∞≡␈↓β[␈α
.␈α
*]␈α
This␈α
command␈α
must␈α
always␈α
be␈α
executed␈α
first␈α
before␈α
a␈α
new␈αdiskette␈αcan␈αbe␈αused␈αfor␈αstoring
␈↓ ↓p␈β∞<␈↓βprograms␈αor␈α
data.␈α∀It␈α
initializes␈α
the␈α
file␈α
directory␈α
and␈α
has␈α
the␈α
effect␈α
of␈α
erasing␈α
the␈α
entire␈α
diskette␈α
by
␈↓ ↓p␈β∞Z␈↓βwriting␈α
over␈α
any␈α
information␈α
that␈α
it␈α
may␈α
contain.
␈↓ F␈β⎇␈↓↓[6]
␈↓ ∧⊃␈β↓H␈↓↓MONITOR COMMANDS:  PROGRAM CONTROL
␈↓ ↓H␈βα
␈↓βThe␈α
following␈α
commands␈α
are␈α
used␈α
for␈α
executing␈α
and␈α
stepping␈α
through␈α
user␈α
programs.
␈↓ ↓H␈βαd␈↓¬EXEC [<program>],[<nloop>],[<step>]
␈↓ ↓p␈ββα␈↓β[␈α∞.␈α∞]␈α∞Executes␈α∞the␈α
user␈α
<program>,␈α
<nloop>␈α
number␈α
of␈α
times.␈α~A␈α
loop␈α
is␈α
terminated␈α
when␈α
either␈α
a
␈↓ ↓p␈ββ ␈↓βSTOP␈αinstruction␈αor␈αthe␈αlast␈αdefined␈αstep␈αof␈αthe␈αprogram␈αis␈αencountered.␈α⊗The␈αvalue␈αof␈α<nloop>␈αcan
␈↓ ↓p␈ββ>␈↓βbe␈αbetween␈α32767␈αand␈α-32768.␈α_All␈αnegative␈αvalues␈αof␈α<nloop>␈αput␈αthe␈αprogram␈αinto␈αa␈αcontinuous
␈↓ ↓p␈ββ\␈↓βloop.␈α≤If␈α∞<nloop>␈α∞is␈α∞omitted␈α∞or␈α∞assigned␈α∞a␈α∞zero␈α∞value,␈α∞the␈α∞program␈α∞will␈α∞be␈α∞executed␈α∞one␈α
time.␈α~If
␈↓ ↓p␈ββz␈↓β<program>␈α
is␈α
omitted,␈α
execution␈α
of␈αthe␈αlast␈αuser␈αprogram␈αEXEC'ed␈αwill␈αbe␈αre-initiated.␈α_If␈α<step>␈αis
␈↓ ↓p␈β∧_␈↓βspecified,␈α∞the␈α∞motion␈α∞program␈α∞begins␈α∞execution␈α∞at␈α∞motion␈α∞program␈α
step␈α
<step>␈α
for␈α
the␈α
first␈α
pass,
␈↓ ↓p␈β∧6␈↓βotherwise,␈αthe␈αprogram␈αstarts␈αexecution␈αat␈αstep␈α#1.␈α⊗All␈αsuccessive␈αpasses␈αbegin␈αat␈αthe␈αstart␈αof␈α
the
␈↓ ↓p␈β∧T␈↓βprogram.
␈↓ ↓H␈β¬⊂␈↓¬SPEED <value>
␈↓ ↓p␈β¬.␈↓β[␈α∩.␈α$*]␈α∩Alters␈α∩the␈α∩speed␈α∩at␈α∩which␈α∩all␈α∩subsequent␈α∩program␈α∩controlled␈α∩manipulator␈α⊃motions␈α⊃are
␈↓ ↓p␈β¬L␈↓βexecuted.␈α The␈α⊂speed␈α⊂at␈α⊂which␈α⊂a␈α⊂particular␈α⊂motion␈α∂will␈α∂execute␈α∂is␈α∂approximately␈α∂related␈α∂to␈α∂the
␈↓ ↓p␈β¬j␈↓βproduct␈α∪of␈α∪the␈α∪speed␈α∪set␈α∪by␈α∪this␈α∩monitor␈α∩command␈α∩and␈α∩the␈α∩speed␈α∩set␈α∩by␈α∩a␈α∩program␈α∩speed
␈↓ ↓p␈βελ␈↓βinstruction.␈α_The␈α<value>␈αof␈αthe␈αspeed␈αcan␈αrange␈αfrom␈α.01␈α(very␈αslow)␈αto␈α327.67␈α(very␈αfast)␈αwhere
␈↓ ↓p␈βε&␈↓β100.00␈α
is␈α
normal␈α
speed.␈α~As␈α
an␈α
example,␈α
if␈α
the␈α
monitor␈α
speed␈α
command␈α
is␈α
50.00␈α
and␈αthe␈αprogram
␈↓ ↓p␈βεD␈↓βinstruction␈α
speed␈α
is␈α
60.00,␈α
the␈α
arm␈α
will␈α
move␈α
at␈α
approximately␈α
30%␈α
of␈α
its␈α
normal␈α
speed.
␈↓ ↓H␈βπ␈↓¬P
␈↓ ↓p␈βπ≡␈↓β[␈α
.␈α
*]␈α
Proceeds␈α
user␈α
program␈α
at␈α
the␈α
step␈α
following␈α
the␈α
step␈α
where␈α
execution␈αwas␈αhalted␈αdue␈αto␈αa
␈↓ ↓p␈βπ<␈↓βPAUSE␈αinstruction␈αor␈αruntime␈αerror.␈α⊗If␈αa␈αprogram␈αis␈αcurrently␈αrunning␈αbut␈α
is␈α
in␈α
a␈α
WAIT␈α
loop,␈α
waiting
␈↓ ↓p␈βπZ␈↓βfor␈αan␈αexternal␈αsignal␈αto␈αbe␈αgiven,␈αtyping␈αP␈αhas␈αthe␈αaffect␈αof␈αskipping␈αover␈αthe␈αWAIT␈αinstruction.␈α⊗If
␈↓ ↓p␈βπx␈↓βa␈α
program␈α
is␈α
executing␈α
but␈α
is␈α
not␈α
in␈α
a␈α
WAIT␈α
loop,␈α
this␈α
instruction␈α
has␈α
no␈α
affect.
␈↓ ↓H␈βλ4␈↓¬R
␈↓ ↓p␈βλR␈↓β[␈α.␈α]␈αAs␈αwith␈αthe␈α"P"␈αinstruction,␈αthis␈αcommand␈αcan␈αbe␈αused␈αfor␈αrestarting␈αprogram␈αexecution␈αafter␈αa
␈↓ ↓p␈βλp␈↓βPAUSE␈αor␈αruntime␈αerror.␈α⊗However,␈αin␈αthis␈αcase,␈αexecution␈αresumes␈αat␈αthe␈αprevious␈αinstruction␈αstep.
␈↓ ↓p␈β	∞␈↓βThis␈αallows␈αthe␈αuser␈αto␈α"retry"␈αa␈αstep␈αthat␈αmay␈αhave␈αbeen␈αaborted␈αdue␈αto␈αan␈αerror␈αcondition.␈α⊗Note
␈↓ ↓p␈β	,␈↓βthat␈αexecution␈αis␈αresumed␈αat␈αthe␈αprevious␈αprogram␈αstep,␈αnot␈αthe␈αpreviously␈αexecuted␈αprogram␈αstep.
␈↓ ↓p␈β	J␈↓βHence␈α⊃it␈α⊃is␈α⊃not␈α⊃possible␈α⊃to␈α⊂use␈α⊂this␈α⊂instruction␈α⊂to␈α⊂back␈α⊂up␈α⊂to␈α⊂a␈α⊂instruction␈α⊂which␈α⊂generated␈α⊂a
␈↓ ↓p␈β	h␈↓βprogram␈α
branch␈α
or␈α
subroutine␈α
call.
␈↓ ↓H␈β
$␈↓¬S [<program>],[<nloop>],[<step>]
␈↓ ↓p␈β
B␈↓β[␈α
.␈α
]␈α
Program␈α
single␈αstep␈αmode.␈α_If␈αany␈αof␈αthe␈αthree␈αoptional␈αarguments␈αare␈αspecified,␈αthe␈αprogram
␈↓ ↓p␈β
`␈↓βexecution␈α∞is␈α∞initiated␈α
in␈α
exactly␈α
the␈α
same␈α
manner␈α
as␈α
an␈α
EXEC␈α
command.␈α~However,␈α
unlike␈α
an␈α
EXEC
␈↓ ↓p␈β
}␈↓βcommand,␈α
program␈α
execution␈αis␈αhalted␈αimmediately␈αafter␈αthe␈αfirst␈αprogram␈αinstruction␈αis␈αcompleted.
␈↓ ↓p␈β≤␈↓βIf␈αall␈αthree␈αarguments␈αare␈αomitted,␈αthe␈α
next␈α
program␈α
instruction␈α
is␈α
executed␈α
and␈α
then␈α
the␈α
program␈α
is
␈↓ ↓p␈β:␈↓βagain␈αhalted.␈α⊗As␈αwith␈αthe␈α"P"␈αand␈α"R"␈αcommands,␈α"S"␈αwith␈αno␈αarguments␈αcan␈αonly␈αbe␈αexecuted␈αafter
␈↓ ↓p␈βX␈↓βa␈α⊂PAUSE␈α⊂instruction,␈α⊂a␈α⊂non-fatal␈α⊂run-time␈α⊂error,␈α⊂or␈α⊂after␈α⊂single␈α⊂step␈α⊂execution␈α⊂of␈α⊂the␈α⊂previous
␈↓ ↓p␈βv␈↓βprogram␈α
instruction.
␈↓ ↓H␈β2␈↓¬ABORT
␈↓ ↓p␈βP␈↓β[*]␈α
Program␈α
execution␈α
is␈α
terminated␈α
at␈α
the␈α
completion␈α
of␈α
the␈α
step␈α
currently␈α
being␈α
executed.
␈↓ ↓H␈β
*␈↓βWhen␈αa␈αprogram␈αterminates␈αexecution␈αdue␈αto␈αa␈αPAUSE␈α
or␈α
STOP␈α
statement␈α
or␈α
from␈α
any␈α
one␈α
of␈α
a␈α
number
␈↓ ↓H␈β
H␈↓βof␈α
run-time␈α
errors,␈α
an␈α
appropriate␈α
message␈α
will␈α
be␈α
typed␈α
out␈αfollowed␈αby␈αone␈αof␈αthe␈αfollowing␈αthree
␈↓ ↓H␈β
f␈↓βphrases:␈α1)␈α"HALTED␈α
AT␈α
STEP␈α
xxx",␈α
2)␈α
"HALTED␈α
AT␈α
ppp-xxx",␈α
or␈α
3)␈α
"USER␈α
PROGRAM␈α
TERMINATED".␈α∀The
␈↓ ↓H␈β∞∧␈↓βfirst␈α∂message␈α∂is␈α∂printed␈α∂when␈α∂the␈α∂main␈α∂program␈α∂terminates␈α∂execution␈α∂due␈α∂to␈α∂an␈α∂error␈α∂or␈α∂a␈α∞PAUSE
␈↓ ↓H␈β∞"␈↓βstatement.␈α$In␈α∩this␈α∩case,␈α∩"xxx"␈α∩is␈α∩the␈α∩number␈α∩of␈α∩the␈α⊃program␈α⊃step␈α⊃following␈α⊃the␈α⊃instruction␈α⊃that
␈↓ ↓H␈β∞@␈↓βgenerated␈α
the␈α
halt.␈α→If␈αa␈αsimiliar␈αtermination␈αtakes␈αplace␈αbut␈αthe␈αhalt␈αoccurs␈αduring␈αthe␈αexecution␈αof␈αa
␈↓ ↓H␈β∞↑␈↓βprogram␈α∂subroutine,␈α∂the␈α∂subroutine␈α∂name␈α∂is␈α∂printed␈α∂(ppp)␈α∂followed␈α∂by␈α∞the␈α∞subroutine␈α∞step␈α∞number.
␈↓ ↓H␈β∞|␈↓βFinally,␈α
if␈α
a␈α
STOP␈α
instruction␈α
is␈α
executed␈α
or␈α
the␈α
last␈α
defined␈α
step␈α
of␈α
a␈α
program␈α
has␈α
completed␈α
execution,
␈↓ ↓H␈β∂~␈↓βthe␈α
third␈α
phrase␈α
is␈α
printed.
␈↓ F␈β⎇␈↓↓[7]
␈↓ ∧↔␈β↓H␈↓↓MONITOR COMMANDS:  COMPUTER STATUS
␈↓ ↓H␈βα
␈↓βThere␈αare␈αa␈αnumber␈αof␈αcommands␈αwhich␈αcan␈αbe␈αused␈αto␈αdetermine␈αthe␈αcurrent␈αstate␈α
of␈α
the␈α
manipulator
␈↓ ↓H␈βα(␈↓βcomputer␈α
and␈α
to␈α
initialize␈α
and␈α
terminate␈α
execution.␈α∀These␈α
commands␈α
are␈α
briefly␈α
summarized␈α
below.
␈↓ ↓H␈ββα␈↓¬CLEAR
␈↓ ↓p␈ββ ␈↓β[␈α
.␈α
*]␈α
Re-initializes␈α
the␈α
VAL␈α
system␈α
and␈αdeletes␈αall␈αdefined␈αpositions␈αand␈αuser␈αprograms.␈α_This␈αis␈αa
␈↓ ↓p␈ββ>␈↓βtotally␈α⊂destructive␈α⊂operation.␈α≡This␈α∂function␈α∂first␈α∂asks␈α∂"ARE␈α∂YOU␈α∂SURE␈α∂(Y,N)?"␈α∂to␈α∂verify␈α∂that␈α∂the
␈↓ ↓p␈ββ\␈↓βoperation␈α
is␈α
to␈α
be␈α
performed.
␈↓ ↓H␈β∧_␈↓¬FREE
␈↓ ↓p␈β∧6␈↓β[␈α∂.␈α∂*]␈α∂Types␈α∂the␈α∂percentage␈α∂of␈α∂available␈α∂memory␈α∂that␈α∂is␈α∂not␈α∂currently␈α∂in␈α∂use.␈α≡As␈α∞the␈α∞available
␈↓ ↓p␈β∧T␈↓βmemory␈α∀is␈α∀being␈α∀added␈α∀up,␈α∀a␈α∀simple␈α∀check␈α∀of␈α∀the␈α∀whole␈α∀area␈α∀is␈α∪made␈α∪to␈α∪ensure␈α∪that␈α∪the
␈↓ ↓p␈β∧r␈↓βbookkeeping␈α
tags␈α
are␈α
consistent.
␈↓ ↓H␈β¬.␈↓¬STATUS
␈↓ ↓p␈β¬L␈↓β[␈α
.␈α
*]␈α
Prints␈αthe␈αstatus␈αinformation␈αof␈αthe␈αuser␈αprogram␈αbeing␈αexecuted.␈α_This␈αincludes␈αdata␈αon␈αthe
␈↓ ↓p␈β¬j␈↓βprogram␈α
or␈α
subroutine␈α
step␈α
at␈α
which␈α
the␈α
program␈α
halt␈αoccurred␈αand␈αthe␈αnumber␈αof␈αprogram␈αEXEC
␈↓ ↓p␈βελ␈↓βloops␈αcompleted␈αand␈α
still␈α
remaining.␈α∀Note␈α
that␈α
if␈α
the␈α
program␈α
is␈α
in␈α
an␈α
infinite␈α
EXEC␈α
loop,␈α
i.e.␈α∀nloop␈α
<
␈↓ ↓p␈βε&␈↓β0,␈αthe␈αprint␈αout␈αof␈αthe␈αnumber␈αof␈αloops␈αcompleted␈αcan␈αbe␈αoff␈αby␈α32767*n␈αcounts␈α(n=1,2,..,∞),␈αsince
␈↓ ↓p␈βεD␈↓βthe␈α
loop␈α
counter␈α
is␈α
permitted␈α
to␈α
overflow.
␈↓ ↓H␈βπ␈↓¬DONE
␈↓ ↓p␈βπ≡␈↓β[␈α⊃.␈α⊃]␈α⊃MONITOR␈α⊃program␈α⊃stops,␈α⊂computer␈α⊂exits␈α⊂to␈α⊂ODT.␈α⊂The␈α⊂program␈α⊂can␈α⊂be␈α⊂started␈α⊂by␈α⊂starting
␈↓ ↓p␈βπ<␈↓βexecution␈α
at␈α
location␈α
100000.
␈↓ ¬λ␈βλ∩␈↓↓PROGRAM INSTRUCTION SET
␈↓ ↓H␈βλT␈↓βThe␈αfollowing␈αsections␈αdescribe␈αthe␈αavailable␈αprogram␈αinstructions.␈α_Because␈αof␈αthe␈αgreat␈αflexibility␈αof
␈↓ ↓H␈βλr␈↓βthe␈αbasic␈αstructure␈αof␈αthe␈αVAL␈αlanguage,␈αnew␈αinstructions␈αand␈αdata␈αtypes␈αwhich␈αare␈αdeemed␈αnecessary
␈↓ ↓H␈β	⊂␈↓βcan␈α
be␈α
easily␈α
added.
␈↓ βE␈β	f␈↓↓USER PROGRAM INSTRUCTIONS:  MOTION STATEMENTS
␈↓ ↓H␈β
(␈↓βIn␈αthe␈αfollowing␈αmotion␈αinstructions␈αall␈αdistances␈αare␈αin␈α
inches,␈α
time␈α
is␈α
in␈α
seconds,␈α
and␈α
strings␈α
can␈α
be␈α
up
␈↓ ↓H␈β
F␈↓βto␈α
one␈α
line␈α
long.
␈↓ ↓H␈β ␈↓¬GO   <position> [!]
␈↓ ↓p␈β>␈↓βMoves␈α
the␈α
arm␈α
to␈α
the␈α
position␈α
and␈α
orientation␈α
specified␈α
by␈α
the␈α
<position>␈α
variable.␈α∀There␈α
is␈α
no␈α
path
␈↓ ↓p␈β\␈↓βcomputed␈α∂for␈α∂this␈α∂motion,␈α∂the␈α∂hardware␈α∂position␈α∂servo␈α∂operates␈α∂in␈α∂slew␈α∂mode.␈α≡Any␈α∂changes␈α∂in
␈↓ ↓p␈βz␈↓βconfiguration␈α∩requested␈α∩by␈α⊃the␈α⊃user␈α⊃are␈α⊃executed␈α⊃during␈α⊃the␈α⊃motion.␈α"If␈α⊃the␈α⊃position␈α⊃name␈α⊃is
␈↓ ↓p␈β_␈↓βfollowed␈αby␈αan␈αexclamation␈αmark␈α(!),␈α<position>␈αwill␈αbe␈αset␈αequal␈αto␈αthe␈αmanipulator's␈αlocation␈αat␈αthe
␈↓ ↓p␈β6␈↓βtime␈α
the␈α
GO␈α
instruction␈α
is␈α
typed.
␈↓ ↓H␈βr␈↓¬MOVE <position> [!]
␈↓ ↓p␈β
⊂␈↓βMoves␈αthe␈αarm␈αto␈αthe␈αposition␈αand␈αorientation␈αspecified␈αby␈αthe␈α<position>␈αvarible.␈α⊗Intermediate␈αset
␈↓ ↓p␈β
.␈↓βpoints␈α
between␈α
the␈α
initial␈α
and␈α
final␈αarm␈αposition␈αare␈αcomputed␈αby␈αinterpolating␈αthe␈αinitial␈αand␈αfinal
␈↓ ↓p␈β
L␈↓βjoint␈αangles.␈α⊗Any␈αchanges␈αin␈αconfiguration␈αrequested␈αby␈αthe␈αuser␈αare␈αperformed␈αduring␈αthe␈αmotion.
␈↓ ↓p␈β
j␈↓βSee␈α
GO␈α
for␈α
an␈α
explanation␈α
of␈α
[!].
␈↓ ↓H␈β∞&␈↓¬MOVEI [<jt1>],[<jt2>],[<jt3>],[<jt4>],[<jt5>],[<jt6>],[<hand>],[<speed>]
␈↓ ↓p␈β∞D␈↓βPerforms␈α⊂the␈α⊂same␈α⊂type␈α⊂of␈α⊂motion␈α⊂as␈α⊂a␈α⊂MOVE␈α⊂instruction,␈α⊂except␈α⊂that␈α⊂the␈α⊂final␈α∂arm␈α∂position␈α∂is
␈↓ ↓p␈β∞b␈↓βexplicitly␈αstated␈αin␈αterms␈αof␈αits␈αsix␈αjoint␈αangles␈αand␈αits␈αhand␈αopening␈αinstead␈αof␈αa␈αposition␈αvariable.
␈↓ ↓p␈β∂␈↓βThe␈α
specified␈α
speed␈α
supersedes␈α
any␈α
previously␈α
executed␈α
SPEED␈α
program␈α
instruction.
␈↓ F␈β⎇␈↓↓[8]
␈↓ ↓H␈β↓H␈↓¬MOVES <position> [!]
␈↓ ↓p␈β↓f␈↓βMoves␈α∞the␈α∞arm␈α∞to␈α∞the␈α∞position␈α∞and␈α∞orientation␈α∞specified␈α∞by␈α∞the␈α∞<position>␈α∞variable.␈α≤The␈α∞hand␈α
is
␈↓ ↓p␈βα∧␈↓βmoved␈α
along␈α
a␈α
straight␈α
line␈α
path␈α
and␈α
the␈α
hand␈α
orientation␈α
is␈α
smoothly␈αrotated␈αto␈αits␈αfinal␈αposition.
␈↓ ↓p␈βα"␈↓βNo␈α
changes␈α
in␈α
configuration␈α
are␈α
permitted␈α
during␈α
this␈α
motion.␈α∀See␈α
GO␈α
for␈α
an␈α
explanation␈α
of␈α
[!].
␈↓ ↓H␈βα↑␈↓¬DRAW [<dX>],[<dY>],[<dZ>]
␈↓ ↓p␈βα|␈↓βMoves␈αthe␈αarm␈αalong␈αa␈αstraight␈αline␈αa␈αdistance␈αof␈αdX␈αin␈αthe␈αX␈αdirection,␈αdY␈αin␈αthe␈αY␈α
direction␈α
and␈α
dZ
␈↓ ↓p␈ββ~␈↓βin␈α⊂the␈α⊂Z␈α⊂direction.␈α∨Any␈α∂distances␈α∂omitted␈α∂are␈α∂assumed␈α∂to␈α∂be␈α∂zero.␈α≡The␈α∂arm␈α∂configuration␈α∂and
␈↓ ↓p␈ββ8␈↓βorientation␈α
are␈α
maintained␈α
during␈α
this␈α
motion.
␈↓ ↓H␈ββt␈↓¬DEPART <distance>
␈↓ ↓p␈β∧∩␈↓βMoves␈αthe␈αhand␈αa␈αdistance␈α<distance>␈αalong␈αthe␈αcurrent␈αaxis␈αof␈αrotation␈αof␈αthe␈αlast␈αjoint.␈α⊗Negative
␈↓ ↓p␈β∧0␈↓βdistances␈α
move␈α
the␈α
hand␈α
forward,␈α
positive␈α
distances␈α
move␈α
the␈α
hand␈α
back.
␈↓ ↓H␈β∧l␈↓¬APPRO <position>[!], <distance>
␈↓ ↓p␈β¬
␈↓βMoves␈α∪the␈α∪hand␈α∩to␈α∩the␈α∩position␈α∩and␈α∩orientation␈α∩specified␈α∩by␈α∩<position>,␈α∩offset␈α∩by␈α∩a␈α∩distance
␈↓ ↓p␈β¬(␈↓β<distance>␈αalong␈αthe␈αaxis␈αof␈αrotation␈αof␈αthe␈αlast␈αjoint.␈α_Positive␈αdistances␈αmove␈αthe␈αhand␈αback␈αfrom
␈↓ ↓p␈β¬F␈↓βthe␈α⊃specified␈α⊃position,␈α⊃negative␈α⊃distances␈α⊃move␈α⊃the␈α⊃hand␈α⊂beyond␈α⊂the␈α⊂position.␈α See␈α⊂GO␈α⊂for␈α⊂an
␈↓ ↓p␈β¬d␈↓βexplanation␈α
of␈α
[!].
␈↓ ↓H␈βε ␈↓¬APPROS <position>[!], <distance>
␈↓ ↓p␈βε>␈↓βSame␈α⊃as␈α⊃APPRO,␈α⊃but␈α⊃the␈α⊂hand␈α⊂is␈α⊂moved␈α⊂along␈α⊂a␈α⊂straight␈α⊂line␈α⊂path␈α⊂and␈α⊂the␈α⊂hand␈α⊂orientation␈α⊂is
␈↓ ↓p␈βε\␈↓βsmoothly␈αrotated␈αto␈αits␈αfinal␈αposition.␈α⊗No␈αchanges␈αin␈αconfiguration␈αare␈αpermitted␈αduring␈αthis␈αmotion.
␈↓ ↓p␈βεz␈↓βSee␈α
GO␈α
for␈α
an␈α
explanation␈α
of␈α
[!].
␈↓ ↓H␈βπ6␈↓¬READY
␈↓ ↓p␈βπT␈↓βMoves␈α
the␈α
arm␈α
to␈α
the␈α
READY␈α
position␈αabove␈αthe␈αwork␈αspace.␈α_This␈αforces␈αthe␈αarm␈αinto␈αa␈αstandard
␈↓ ↓p␈βπr␈↓βconfiguration.␈α_No␈αmatter␈αwhere␈αthe␈αmanipulator␈αis␈αoriginally␈αpositioned,␈αthis␈αinstruction␈αwill␈αalways
␈↓ ↓p␈βλ⊂␈↓βsucceed.
␈↓ ↓H␈βλL␈↓¬REST
␈↓ ↓p␈βλj␈↓βMoves␈αthe␈αarm␈αto␈αthe␈αREST␈αposition.␈α⊗This␈αleaves␈αthe␈αarm␈αin␈αa␈α
safe␈α
position␈α
in␈α
case␈α
power␈α
is␈α
turned
␈↓ ↓p␈β	λ␈↓βoff.␈α↔If␈αno␈αspecial␈αspeed␈αhas␈αbeen␈αset␈αvia␈αthe␈αSPEED␈αcommand,␈αthe␈αarm␈αwill␈αmove␈αto␈αrest␈αat␈αhalf␈αthe
␈↓ ↓p␈β	&␈↓βnormal␈α
speed.
␈↓ ↓H␈β	b␈↓¬OPEN <distance>   or   CLOSE <distance>
␈↓ ↓p␈β
␈↓βChanges␈αthe␈αhand␈αopening␈αto␈α<distance>␈αinches␈αduring␈αthe␈αexecution␈αof␈αthe␈αnext␈αmotion␈αinstruction.
␈↓ ↓p␈β
≡␈↓βIf␈α
<distance>␈α
is␈α
negative,␈αthe␈αhand␈αis␈αclosed␈αas␈αfar␈αas␈αpossible,␈αand␈αif␈α<distance>␈αis␈αvery␈αlarge,␈αthe
␈↓ ↓p␈β
<␈↓βhand␈αis␈αopened␈αas␈αfar␈αas␈αpossible,␈αotherwise␈αthe␈αhand␈αopening␈αis␈αset␈αequal␈αto␈α<distance>.␈α⊗Both␈αthe
␈↓ ↓p␈β
Z␈↓βOPEN␈α
and␈α
the␈α
CLOSE␈α
instructions␈α
produce␈α
exactly␈α
the␈α
same␈α
effect.
␈↓ ↓H␈β⊗␈↓¬OPENI <distance>   or   CLOSEI <distance>
␈↓ ↓p␈β4␈↓βPerforms␈αthe␈αsame␈αchange␈αin␈αhand␈αopening␈αas␈αan␈αOPEN␈αbut␈αthe␈αoperation␈αis␈αperformed␈αimmediately
␈↓ ↓p␈βR␈↓βinstead␈α⊂of␈α⊂waiting␈α⊂for␈α⊂the␈α⊂next␈α⊂motion␈α⊂instruction.␈α Both␈α∂the␈α∂OPENI␈α∂and␈α∂the␈α∂CLOSEI␈α∂instructions
␈↓ ↓p␈βp␈↓βproduce␈α
exactly␈α
the␈α
same␈α
effect.
␈↓ ↓H␈β,␈↓¬GRASP <distance>,[<label>]
␈↓ ↓p␈βJ␈↓βCloses␈αthe␈αhand␈αand␈αchecks␈αto␈αsee␈αif␈αthe␈αfinal␈αhand␈αopening␈αwas␈αless␈αthan␈α
the␈α
specified␈α
distance.␈α∀If
␈↓ ↓p␈βh␈↓βso,␈α⊃the␈α⊃program␈α⊃branches␈α⊃to␈α⊃the␈α⊃step␈α⊃indicated␈α⊃by␈α⊃the␈α⊃program␈α⊃label␈α⊂or␈α⊂an␈α⊂error␈α⊂message␈α⊂is
␈↓ ↓p␈β
ε␈↓βgenerated␈αif␈αthe␈αoptional␈αprogram␈αlabel␈αis␈α
not␈α
specified.␈α∀This␈α
instruction␈α
provides␈α
a␈α
simple␈α
one␈α
step
␈↓ ↓p␈β
$␈↓βmethod␈α
for␈α
grasping␈α
an␈α
object␈α
and␈α
testing␈α
to␈α
ensure␈α
that␈α
proper␈α
contact␈α
was␈α
achieved.
␈↓ ↓H␈β
`␈↓¬DRIVE <jt>,<angle>,<time>
␈↓ ↓p␈β
}␈↓βOperates␈αthe␈αsingle␈αjoint␈αspecified␈αby␈αthe␈αparameter␈α<jt>␈α(1-7).␈α⊗The␈αcurrent␈αjoint␈αangle␈αis␈αchanged
␈↓ ↓p␈β∞≤␈↓βby␈αan␈αamount␈α<angle>.␈α⊗The␈αchange␈α
in␈α
joint␈α
angle␈α
must␈α
be␈α
specified␈α
in␈α
degrees.␈α∀The␈α
duration␈α
<time>
␈↓ ↓p␈β∞:␈↓βmust␈α
be␈α
specified␈α
in␈α
seconds.
␈↓ F␈β⎇␈↓↓[9]
␈↓ ↓H␈β↓H␈↓¬DELAY <duration>
␈↓ ↓p␈β↓f␈↓βPuts␈αthe␈αprogram␈αin␈αa␈αwait␈αloop␈αfor␈αthe␈αspecified␈αamount␈α
of␈α
time.␈α∀The␈α
duration␈α
can␈α
be␈α
given␈α
as␈α
any
␈↓ ↓p␈βα∧␈↓βvalue␈α∞between␈α∞.01␈α∞and␈α∞327.67␈α∞seconds.␈α≤This␈α∞instruction␈α∞operates␈α∞just␈α∞like␈α∞a␈α
"move␈α
to␈α
nowhere"
␈↓ ↓p␈βα"␈↓βmotion␈α∂instruction.␈α≡In␈α∂particular␈α∂if␈α∂there␈α∂is␈α∂a␈α∂pending␈α∞hand␈α∞operation,␈α∞the␈α∞hand␈α∞motion␈α∞will␈α∞take
␈↓ ↓p␈βα@␈↓βplace␈α∂during␈α∂the␈α∂execution␈α∂of␈α∂the␈α∂DELAY␈α∂instruction␈α∞and␈α∞if␈α∞any␈α∞temporary␈α∞special␈α∞switches␈α∞have
␈↓ ↓p␈βα↑␈↓βbeen␈α⊃specified,␈α⊃they␈α⊃will␈α⊂be␈α⊂cleared␈α⊂after␈α⊂the␈α⊂conclusion␈α⊂of␈α⊂the␈α⊂DELAY␈α⊂(see␈α⊂section␈α⊂on␈α⊂special
␈↓ ↓p␈βα|␈↓βswitches).
␈↓ α∃␈ββR␈↓↓USER PROGRAM INSTRUCTIONS:  ARM CONFIGURATION CONTROL STATEMENTS
␈↓ ↓H␈β∧∀␈↓βFor␈α∩an␈α⊃anthropomorphic,␈α⊃six-joint␈α⊃manipulator,␈α⊃most␈α⊃points␈α⊃in␈α⊃the␈α⊃work␈α⊃space␈α⊃of␈α⊃the␈α⊃arm␈α⊃can␈α⊃be
␈↓ ↓H␈β∧2␈↓βreached␈α∂by␈α∂assuming␈α∂one␈α∂of␈α∂eight␈α∂possible␈α∂spatial␈α∂configurations.␈α≡Normally,␈α∂the␈α∂arm␈α∂will␈α∞remain␈α∞in
␈↓ ↓H␈β∧P␈↓βwhatever␈αconfiguration␈αit␈αstarts␈αin␈αwhen␈αthe␈α
user␈α
program␈α
begins␈α
execution␈α
or␈α
continues␈α
from␈α
a␈α
PAUSE
␈↓ ↓H␈β∧n␈↓βstatement␈αor␈αruntime␈αerror.␈α⊗The␈αonly␈αexceptions␈α
to␈α
this␈α
rule␈α
are:␈α∀1)␈α
when␈α
the␈α
arm␈α
is␈α
forced␈α
to␈α
change
␈↓ ↓H␈β¬␈↓βfrom␈αFLIP␈αto␈αNOFLIP␈αor␈αvice␈αversa␈αin␈αorder␈αto␈αkeep␈αjoints␈α4␈αor␈α6␈αwithin␈α
stop␈α
limits␈α
or␈α
2)␈α
when␈α
a␈α
READY
␈↓ ↓H␈β¬*␈↓βor␈αREST␈αinstruction␈αis␈αexecuted␈αor␈α3)␈αwhen␈αa␈αspecific␈αchange␈αin␈αconfiguration␈αis␈αrequested␈αby␈αthe␈α
user
␈↓ ↓H␈β¬H␈↓βprogram␈αthrough␈αthe␈α
execution␈α
of␈α
any␈α
of␈α
the␈α
following␈α
program␈α
instructions.␈α∀When␈α
the␈α
user␈α
specifies␈α
a
␈↓ ↓H␈β¬f␈↓βchange␈α∞in␈α∞arm␈α
configuration,␈α
the␈α
requested␈α
change␈α
with␈α
be␈α
accomplished␈α
during␈α
the␈α
execution␈α
of␈α
the
␈↓ ↓H␈βε∧␈↓βnext␈α
GO,␈α
MOVE,␈α
or␈α
APPRO␈α
motion␈α
instruction.
␈↓ ↓H␈βε↑␈↓¬RIGHTY or LEFTY
␈↓ ↓p␈βε|␈↓βRequests␈α
a␈α
change␈α
in␈α
the␈α
arm␈α
configuration␈α
so␈α
that␈α
the␈αmanipulator's␈αfirst␈αthree␈αjoints␈αresemble␈αa
␈↓ ↓p␈βπ~␈↓βhuman's␈α
right␈α
or␈α
left␈α
shouldered␈α
arm,␈α
respectively.
␈↓ ↓H␈βπV␈↓¬ABOVE or BELOW
␈↓ ↓p␈βπt␈↓βRequests␈α
a␈α
change␈α
in␈α
arm␈α
configuration␈α
so␈α
that␈α
the␈α
elbow␈α
of␈α
the␈α
arm␈α
is␈α
either␈α
pointed␈α
up␈α
or␈α
down.
␈↓ ↓H␈βλ0␈↓¬FLIP or NOFLIP
␈↓ ↓p␈βλN␈↓βChanges␈α
the␈α
range␈α
of␈α
operation␈α
of␈α
joint␈α
5␈α
to␈α
plus␈α
(NOFLIP)␈α
or␈α
minus␈α
(FLIP)␈α
angles.
␈↓ ↓g␈β	$␈↓↓USER PROGRAM INSTRUCTIONS:  INTEGER VARIABLE AND ASSIGNMENT INSTRUCTIONS
␈↓ ↓H␈β	f␈↓βIn␈α∞most␈α∞cases␈α∞where␈α∞an␈α∞integer␈α∞variable␈α∞is␈α∞required␈α∞as␈α∞an␈α∞argument␈α∞for␈α∞a␈α
user␈α
program␈α
instruction,
␈↓ ↓H␈β
∧␈↓βeither␈α∂the␈α∂symbolic␈α∂name␈α∂of␈α∂a␈α∞variable␈α∞can␈α∞be␈α∞given␈α∞or␈α∞an␈α∞integer␈α∞value␈α∞can␈α∞be␈α∞specified.␈α≤Integer
␈↓ ↓H␈β
"␈↓βvariable␈αnames␈αconform␈αto␈αthe␈αsyntax␈αgiven␈αfor␈αposition␈αvariable␈αand␈αprogram␈αnames␈αand␈αtheir␈αvalues
␈↓ ↓H␈β
@␈↓βmust␈αbe␈αbetween␈α32767␈αand␈α-32768.␈α⊗The␈αonly␈αtime␈αthat␈α
an␈α
integer␈α
value␈α
cannot␈α
be␈α
used␈α
in␈α
place␈α
of␈α
a
␈↓ ↓H␈β
↑␈↓βinteger␈α
variable␈α
is␈α
when␈α
the␈α
specified␈α
operation␈α
would␈α
result␈α
in␈α
an␈α
attempt␈α
to␈α
alter␈α
the␈α
value␈α
of␈αthe
␈↓ ↓H␈β
|␈↓βconstant.␈α∀In␈α
this␈α
case␈α
an␈α
error␈α
message␈α
in␈α
generated.
␈↓ ↓H␈βV␈↓¬SETI <i.var1> = <i.var2> [<operation> <i.var3>]
␈↓ ↓p␈βt␈↓βThe␈αvalue␈αof␈α<i.var1>␈αis␈αset␈αequal␈αto␈αthe␈αresult␈αof␈αevaluating␈αthe␈αexpression␈α
on␈α
the␈α
right␈α
side␈α
of␈α
the
␈↓ ↓p␈β∩␈↓βequal␈αsign.␈α_The␈αpermitted␈α<operation>'s␈αare:␈α_addition␈α(+),␈αsubtraction␈α(-),␈αmultiplication␈α(*),␈αinteger
␈↓ ↓p␈β0␈↓βdivision␈α(/),␈αand␈αmodulus␈αdetermination␈α(%).␈α⊗If␈αboth␈αthe␈αoperation␈αand␈αthe␈αthird␈αvariable␈αare␈α
missing,
␈↓ ↓p␈βN␈↓βthe␈α
instruction␈α
is␈α
a␈α
direct␈α
assignment␈α
statement.
␈↓ ↓H␈β
␈↓¬TYPEI <i.var>
␈↓ ↓p␈β
(␈↓βTypes␈α
the␈α
value␈α
of␈α
the␈α
integer␈α
variable␈α
<i.var>.
␈↓ ↓H␈β
d␈↓¬HERE <position>
␈↓ ↓p␈β∞α␈↓βSets␈α⊃the␈α⊃value␈α⊂of␈α⊂the␈α⊂specified␈α⊂position␈α⊂variable␈α⊂equal␈α⊂to␈α⊂the␈α⊂current␈α⊂manipulator␈α⊂position␈α⊂and
␈↓ ↓p␈β∞ ␈↓βorientation.
␈↓ ↓H␈β∞\␈↓¬SET <trans1> = <trans2>
␈↓ ↓p␈β∞z␈↓βThe␈α∂value␈α∞of␈α∞transformation␈α∞1␈α∞is␈α∞set␈α∞equal␈α∞to␈α∞the␈α∞value␈α∞of␈α∞transformation␈α∞2.␈α≤If␈α∞the␈α∞position␈α∞and
␈↓ ↓p␈β∂_␈↓βorientation␈α
of␈α
transformation␈α
2␈α
are␈α
not␈α
yet␈α
defined␈α
an␈α
error␈α
message␈α
will␈α
be␈α
generated.
␈↓ 8␈β⎇␈↓↓[10]
␈↓ ↓H␈β↓H␈↓¬SHIFT <trans> BY [<dx>],[<dy>],[<dz>]
␈↓ ↓p␈β↓f␈↓βThe␈α⊂X,␈α⊂Y,␈α⊂and␈α⊂Z␈α⊂positions␈α⊂of␈α⊂the␈α⊂transformation␈α⊂<trans>␈α⊂are␈α⊂modified␈α∂by␈α∂adding␈α∂the␈α∂changes␈α∂in
␈↓ ↓p␈βα∧␈↓βdistances␈α
<dx>,␈α
<dy>,␈α
and␈α
<dz>,␈α
respectively.␈α~If␈α
the␈α
value␈α
of␈α
the␈α
transformation␈α
has␈α
not␈α
yet␈αbeen
␈↓ ↓p␈βα"␈↓βdefined␈α
or␈α
if␈α
its␈α
new␈α
X,␈α
Y,␈α
Z␈α
position␈α
is␈α
too␈α
large␈α
to␈α
represent,␈α
an␈α
error␈α
message␈α
will␈α
be␈α
generated.
␈↓ β>␈βαx␈↓↓USER PROGRAM INSTRUCTIONS:  CONTROL STRUCTURES
␈↓ ↓H␈ββ:␈↓βThe␈α⊃following␈α⊃instructions␈α⊃are␈α⊃used␈α⊃to␈α⊃alter␈α⊃the␈α⊂sequence␈α⊂in␈α⊂which␈α⊂user␈α⊂program␈α⊂instructions␈α⊂are
␈↓ ↓H␈ββX␈↓βexecuted␈α
and␈α
for␈α
interlocking␈α
the␈α
arm␈α
computer␈α
with␈α
other␈α
devices.
␈↓ ↓H␈β∧2␈↓¬GOSUB <prog>
␈↓ ↓p␈β∧P␈↓βExecution␈α∪of␈α∪the␈α∪current␈α∪program␈α∪is␈α∪temporarily␈α∪suspended␈α∪and␈α∪program␈α∪execution␈α∪continues
␈↓ ↓p␈β∧n␈↓βstarting␈α⊂with␈α⊂the␈α⊂first␈α⊂step␈α⊂of␈α⊂the␈α⊂user␈α⊂program␈α⊂<prog>.␈α The␈α∂address␈α∂of␈α∂the␈α∂next␈α∂step␈α∂in␈α∂the
␈↓ ↓p␈β¬␈↓βcurrent␈α
program␈α
is␈α
automatically␈α
saved␈α
and␈α
up␈α
to␈α
10␈α
programs␈α
can␈α
be␈α
superseded␈α
at␈α
any␈α
given␈α
time.
␈↓ ↓H␈β¬H␈↓¬RETURN
␈↓ ↓p␈β¬f␈↓βTerminates␈α∂execution␈α∂of␈α∂the␈α∂current␈α∂user␈α∂program␈α∂and␈α∂resumes␈α∂execution␈α∞of␈α∞the␈α∞last␈α∞suspended
␈↓ ↓p␈βε∧␈↓βprogram␈α∂at␈α∂the␈α∂step␈α∞following␈α∞the␈α∞executed␈α∞GOSUB␈α∞instruction.␈α≤Executing␈α∞a␈α∞RETURN␈α∞in␈α∞the␈α∞main
␈↓ ↓p␈βε"␈↓βprogram␈α
produces␈α
the␈α
same␈α
affect␈α
as␈α
executing␈α
a␈α
STOP␈α
instruction.
␈↓ ↓H␈βε↑␈↓¬IF <i.var1> <relationship> <i.var2> THEN <label>
␈↓ ↓p␈βε|␈↓βThe␈α
value␈α
of␈α
<i.var1>␈α
is␈α
compared␈α
to␈α
the␈αvalue␈αof␈α<i.var2>␈αand␈αif␈αthe␈αstated␈α<relationship>␈αis␈αtrue,
␈↓ ↓p␈βπ~␈↓βthe␈α∂program␈α∂branches␈α∂execution␈α∂to␈α∂the␈α∂program␈α∂step␈α∂specified␈α∂by␈α∂<label>.␈α≡Otherwise,␈α∂the␈α∂next
␈↓ ↓p␈βπ8␈↓βsequential␈αstep␈αof␈αthe␈αprogram␈αis␈αexecuted␈αas␈αusual.␈α↔The␈αpossible␈αrelationships␈αthat␈αcan␈αbe␈αtested
␈↓ ↓p␈βπV␈↓βfor␈αare:␈αequal␈α(EQ),␈αnot␈αequal␈α(NE),␈αgreater␈αthan␈α(GT),␈αgreater␈αthan␈αor␈αequal␈α(GE),␈αless␈αthan␈α(LT),␈αand
␈↓ ↓p␈βπt␈↓βless␈α
than␈α
or␈α
equal␈α
(LE).
␈↓ ↓H␈βλ0␈↓¬GOTO <label>
␈↓ ↓p␈βλN␈↓βPerforms␈α
an␈α
unconditional␈α
branch␈α
to␈α
the␈α
program␈α
step␈α
specified␈α
by␈α
<label>.
␈↓ ↓H␈β	
␈↓¬SIGON <channel>
␈↓ ↓p␈β	(␈↓βTurns␈αon␈αthe␈αsignal␈αto␈αthe␈αdevice␈αattached␈αto␈αthe␈αspecified␈αoutput␈α
channel.␈α∀<channel>␈α
can␈α
be␈α
either
␈↓ ↓p␈β	F␈↓βan␈αinteger␈αnumber␈αor␈αan␈αinteger␈αvariable.␈α∃In␈α
either␈α
case,␈α
the␈α
value␈α
of␈α
<channel>␈α
must␈α
be␈α
between␈α
1
␈↓ ↓p␈β	d␈↓βand␈α
N,␈α
where␈α
N␈α
is␈α
the␈α
number␈α
of␈α
hardware␈α
interlock␈α
signals␈α
that␈α
exist.
␈↓ ↓H␈β
 ␈↓¬SIGOFF <channel>
␈↓ ↓p␈β
>␈↓βTurns␈α
off␈α
the␈α
signal␈α
to␈α
the␈α
device␈α
attached␈α
to␈α
the␈α
specified␈α
output␈α
channel.
␈↓ ↓H␈β
z␈↓¬WAIT <channel>
␈↓ ↓p␈β_␈↓βThe␈α
program␈α
is␈α
put␈α
into␈αa␈αwait␈αloop␈αuntil␈αa␈αsignal␈αis␈αreceived␈αon␈αthe␈αindicated␈αinput␈αchannel.␈α_This
␈↓ ↓p␈β6␈↓βinstruction␈α
can␈α
be␈α
skipped␈α
by␈α
typing␈α
the␈α
"P"␈α
monitor␈α
command.
␈↓ ↓H␈βr␈↓¬PAUSE <string>
␈↓ ↓p␈β⊂␈↓βTerminates␈α∪execution␈α∪of␈α∪a␈α∪user␈α∪program␈α∪and␈α∪types␈α∩the␈α∩message␈α∩<string>.␈α$Execution␈α∩can␈α∩be
␈↓ ↓p␈β.␈↓βcontinued␈α
from␈α
this␈α
point␈α
by␈α
typing␈α
"P".
␈↓ ↓H␈βj␈↓¬STOP
␈↓ ↓p␈β
λ␈↓βSame␈α⊂as␈α⊂PAUSE␈α⊂except␈α⊂that␈α∂the␈α∂program␈α∂cannot␈α∂be␈α∂continued␈α∂unless␈α∂more␈α∂program␈α∂loops␈α∂were
␈↓ ↓p␈β
&␈↓βspecified␈α
at␈α
the␈α
time␈α
that␈α
program␈α
execution␈α
was␈α
initiated␈α
(see␈α
EXEC␈α
command).
␈↓ 8␈β⎇␈↓↓[11]
␈↓ β␈β↓H␈↓↓USER PROGRAM INSTRUCTIONS:  SPECIAL SWITCH STATEMENTS
␈↓ ↓H␈βα
␈↓βThe␈αfollowing␈αinstructions␈αare␈αused␈α
for␈α
enabling␈α
and␈α
disabling␈α
special␈α
features␈α
of␈α
the␈α
hardware␈α
position
␈↓ ↓H␈βα(␈↓βservo␈α
and␈α
the␈α
software␈α
trajectory␈α
generator.␈α~As␈α
indicated␈α
below,␈α
some␈α
of␈α
these␈α
instructions␈α
can␈α
be
␈↓ ↓H␈βαF␈↓βfollowed␈αby␈αthe␈αword␈αALWAYS␈αif␈αit␈αis␈αdesired␈αthat␈αthe␈αrequested␈αoption␈αbe␈αturned␈αoff␈αor␈αon␈αduring␈αall
␈↓ ↓H␈βαd␈↓βsuccessive␈α⊂motions.␈α≡Whenever␈α∂a␈α∂switch␈α∂is␈α∂not␈α∂followed␈α∂by␈α∂ALWAYS,␈α∂it␈α∂is␈α∂assumed␈α∂that␈α∂the␈α∂switch
␈↓ ↓H␈ββα␈↓βsetting␈α
is␈α
only␈α
to␈α
affect␈α
the␈α
next␈α
motion.
␈↓ ↓H␈ββ\␈↓¬COARSE [ALWAYS]
␈↓ ↓p␈ββz␈↓βThe␈α⊃low␈α⊃tolerance␈α⊃feature␈α⊃is␈α⊃enabled␈α⊂in␈α⊂the␈α⊂hardware␈α⊂servo␈α⊂so␈α⊂that␈α⊂larger␈α⊂errors␈α⊂in␈α⊂the␈α⊂final
␈↓ ↓p␈β∧_␈↓βposition␈αof␈αthe␈αarm␈αjoints␈αwill␈αbe␈αpermitted␈αat␈αthe␈αend␈αof␈αthe␈αnext␈αmotion.␈α⊗This␈αwill␈αresult␈αin␈αmuch
␈↓ ↓p␈β∧6␈↓βfaster␈α
motion␈α
execution␈α
times␈α
if␈α
high␈α
accuracy␈α
is␈α
not␈α
required.
␈↓ ↓H␈β∧r␈↓¬FINE [ALWAYS]
␈↓ ↓p␈β¬⊂␈↓βOpposite␈α
of␈α
the␈α
COARSE␈α
instruction.␈α∀This␈α
is␈α
the␈α
default␈α
state␈α
of␈α
the␈α
hardware␈α
servo.
␈↓ ↓H␈β¬L␈↓¬NONULL [ALWAYS]
␈↓ ↓p␈β¬j␈↓βThe␈αnext␈αexecuted␈αmotion␈αis␈αterminated␈αwithout␈αwaiting␈αfor␈αthe␈αelectronics␈αto␈αsignal␈αthat␈αall␈αmoving
␈↓ ↓p␈βελ␈↓βjoints␈αhave␈αreached␈αtheir␈αspecified␈αpositions.␈α⊗Like␈αthe␈α
COARSE␈α
command,␈α
this␈α
mode␈α
results␈α
in␈α
faster
␈↓ ↓p␈βε&␈↓βmotion␈α
times␈α
if␈α
final␈α
position␈α
accuracy␈α
is␈α
not␈α
required.␈α~However,␈α
since␈α
no␈α
position␈α
error␈αchecking
␈↓ ↓p␈βεD␈↓βwhatsoever␈α
is␈α
done,␈α
motion␈α
execution␈α
times␈α
will␈α
be␈α
fixed␈α
and␈α
final␈α
position␈α
errors␈α
can␈α
be␈α
quite␈α
large.
␈↓ ↓H␈βπ␈↓¬NULL [ALWAYS]
␈↓ ↓p␈βπ≡␈↓βOpposite␈α
of␈α
the␈α
NONULL␈α
instruction.␈α∀This␈α
is␈α
the␈α
default␈α
state␈α
of␈α
the␈α
software␈α
control␈α
system.
␈↓ ↓H␈βπZ␈↓¬INTOFF [ALWAYS]
␈↓ ↓p␈βπx␈↓βTurns␈α∂off␈α∂the␈α∂hardware␈α∂position␈α∞error␈α∞integration␈α∞feature␈α∞during␈α∞the␈α∞next␈α∞motion.␈α≤However,␈α∞the
␈↓ ↓p␈βλ⊗␈↓βhardware␈α
integration␈α
is␈α
always␈α
enabled␈α
during␈α
the␈α
final␈α
position␈α
error␈α
nulling␈α
period.
␈↓ ↓H␈βλR␈↓¬INTON [ALWAYS]
␈↓ ↓p␈βλp␈↓βForces␈α
the␈α
hardware␈α
to␈α
integrate␈α
the␈α
position␈α
error␈α
throughout␈α
the␈α
next␈α
motion.
␈↓ ↓H␈β	,␈↓¬PULSE
␈↓ ↓p␈β	J␈↓βEnables␈α∞the␈α∞electronic␈α∞hand␈α∞pulse␈α∞mode␈α∞during␈α∞the␈α∞next␈α∞arm␈α∞motion␈α∞for␈α∞approximately␈α
100␈α
msec.
␈↓ ↓p␈β	h␈↓βThis␈α
mode␈α
is␈α
useful␈α
for␈α
freeing␈α
the␈α
hand␈α
after␈α
it␈α
has␈α
jammed␈α
open␈α
or␈α
closed.
␈↓ ↓H␈β
B␈↓¬SPEED <value> [ALWAYS]
␈↓ ↓p␈β
`␈↓βRequests␈αthat␈αthe␈αnext␈αarm␈αmotion␈αbe␈αperformed␈αat␈αa␈αspeed␈αother␈αthan␈αnormal␈α(=100).␈α↔The␈αspeed
␈↓ ↓p␈β
}␈↓βcan␈αrange␈αfrom␈α1␈α(extremely␈αslow)␈αto␈α32767␈α(the␈αlargest␈αpossible␈αinteger␈αvariable␈αnumber␈αwhich␈αin
␈↓ ↓p␈β≤␈↓βthis␈α
case␈α
produces␈α
a␈α
hardware␈α
slewing␈α
mode).
␈↓ ↓H␈βX␈↓¬TOOL <tool#> = [<dX>],[<dY>],[<dZ>],[<rZ>]
␈↓ ↓p␈βv␈↓βChanges␈α∂the␈α∂current␈α∂arm␈α∂tool␈α∂to␈α∂<tool#>␈α∞and␈α∞optionally␈α∞changes␈α∞the␈α∞dimensions␈α∞of␈α∞<tool#>.␈α≤See
␈↓ ↓p␈β∀␈↓βmonitor␈α
instruction␈α
"TOOL"␈α
for␈α
a␈α
description␈α
of␈α
the␈α
effect␈α
of␈α
this␈α
instruction.
␈↓ β\␈βj␈↓↓USER PROGRAM INSTRUCTIONS:  MISC. STATEMENTS
␈↓ ↓H␈β
K␈↓¬COMMNT <string>
␈↓ ↓p␈β
i␈↓βComment␈α
line,␈α
a␈α
no-operation␈α
at␈α
run-time.
␈↓ ↓H␈β∞%␈↓¬TYPE <string>
␈↓ ↓p␈β∞C␈↓βTypes␈α
the␈α
message␈α
<string>␈α
on␈α
the␈α
console␈α
terminal.
␈↓ 8␈β⎇␈↓↓[12]
␈↓ αi␈βεY␈↓↓Welcome to VAL.  Good luck, and may the robots obey all your commands!
␈↓ 8␈β⎇␈↓↓[13]
␈↓ ¬F␈β↓H␈↓↓EXAMPLE PROGRAM
␈↓ ↓H␈βα)␈↓βWriting␈α
an␈α
example␈α
program␈α
named␈α
DEMO1␈α
to␈α
pick␈α
up␈α
an␈α
item␈α
at␈α
point␈α
PICK␈α
and␈α
place␈α
it␈α
at␈α
point␈α
PLACE.
␈↓ ↓H␈βαe␈↓β.EDIT DEMO1␈↓ ∧XUser types this in to start editing program DEMO1.
␈↓ ↓H␈βββ␈↓βEDITING DEMO1␈↓ ∧XVAL response
␈↓ ↓H␈ββ?␈↓β1.␈↓ α_100 OPEN 1.5␈↓ ∧XOpen hand to 1.5 inches during next motion.
␈↓ ↓H␈ββ]␈↓β2.␈↓ α_APPRO PICK, 2.0␈↓ ∧XApproach to 2 inches away from point PICK.
␈↓ ↓H␈ββ{␈↓β3.␈↓ α_SPEED 30␈↓ ∧XSlow down to 30% speed for next move only.
␈↓ ↓H␈β∧→␈↓β4.␈↓ α_MOVE PICK!␈↓ ∧XMove to point PICK.  Current arm position is point PICK.
␈↓ ↓H␈β∧7␈↓β5.␈↓ α_GRASP .3,100␈↓ ∧XClose hand. If item is there, continue, otherwise go to label 100 and try again.
␈↓ ↓H␈β∧U␈↓β6.␈↓ α_DEPART 2.5␈↓ ∧XMove 2.5 inches away along hand vector.
␈↓ ↓H␈β∧s␈↓β7.␈↓ α_APPROS PLACE,3␈↓ ∧XMove in straight line to 3 inches from point PLACE
␈↓ ↓H␈β¬⊃␈↓β8.␈↓ α_SPEED 20␈↓ ∧XSlow down to 20% speed for next motion only.
␈↓ ↓H␈β¬/␈↓β9.␈↓ α_MOVES PLACE␈↓ ∧XMove in straight line to point PLACE.
␈↓ ↓H␈β¬M␈↓β10.␈↓ α_OPENI 1.5␈↓ ∧XOpen hand to 1.5 inches gap.
␈↓ ↓H␈β¬k␈↓β11.␈↓ α_DEPART 2␈↓ ∧XMove back 2 inches away from point PLACE.
␈↓ ↓H␈βε	␈↓β12.␈↓ α_E␈↓ ∧XExit from editor, program is completely written.
␈↓ ↓H␈βεc␈↓βOne␈α
way␈α
of␈α
entering␈α
the␈α
point␈α
PLACE.
␈↓ ↓H␈βπ∨␈↓β.HERE PLACE␈↓ ∧XTyping this tells VAL to make the current position of the arm point PLACE.
␈↓ ↓H␈βπy␈↓βX␈↓ α_Y␈↓ αhZ␈↓ β8O␈↓ ∧λA␈↓ ∧XT
␈↓ ↓H␈βλ5␈↓β14.71␈↓ α_4.62␈↓ αh3.20␈↓ β858.44␈↓ ∧λ125.30␈↓ ¬(90.00
␈↓ ↓H␈β	∂␈↓βCHANGES␈↓ ∧XVAL asks if operator wishes to make and typed in changes. 
␈↓ ↓H␈β	K␈↓β.␈↓ ∧λA carriage return signifies no changes desired.
␈↓ ↓H␈β
π␈↓βRunning program DEMO1.  First at 50% speed to see everything is right.
␈↓ ↓H␈β
C␈↓β.Speed 50
␈↓ ↓H␈β
a␈↓β.EXEC DEMO1,3␈↓ ∧XExecutes DEMO1 3 times at 50% speed.
␈↓ ↓H␈β≥␈↓β*STATUS␈↓ ∧XUsing background mode to check status while arm is running.
␈↓ ↓H␈βY␈↓βPROGRAM COMPLETED␈↓ ∧XVAL says its done ...back to monitor mode.
␈↓ ↓H␈βw␈↓β.SPEED 100␈↓ ∧λNow run at 100 % speed.
␈↓ ↓H␈β∃␈↓β.EXEC ,50␈↓ ∧λ50 times through DEMO1 at 100% speed.
␈↓ 8␈β⎇␈↓↓[14]
␈↓ ∧m␈β↓H␈↓↓SUMMARY OF INSTRUCTION SET
␈↓ ↓H␈βαε␈↓↓Monitor Instructions
␈↓ ↓z␈βαG␈↓¬BASE [<dX>],[<dY>],[<Z rotation>]␈↓ ε DPOINT [<position1>],...[<position8>]
␈↓ ↓z␈βαe␈↓¬EDIT [<program>],[<nstep>]␈↓ ε HERE <position>
␈↓ ↓z␈βββ␈↓¬LISTP <program>,[<step1>],[<step2>]␈↓ ε LISTT [<position1>],...,[<position8>]
␈↓ ↓z␈ββ!␈↓¬POINT <position>␈↓ ε PROGS
␈↓ ↓z␈ββ?␈↓¬TOOL <tool#> = [<dX>],[<dY>],[<dZ>],[<rZ>]␈↓ ε WHERE
␈↓ ↓z␈ββ{␈↓¬DELETE <file>␈↓ ε ERASE
␈↓ ↓z␈β∧→␈↓¬FORMAT␈↓ ε LISTF
␈↓ ↓z␈β∧7␈↓¬LOADP <file>␈↓ ε LOADT <file>
␈↓ ↓z␈β∧U␈↓¬STOREP [<program1>],...,[<program7>]␈↓ ε STORET <file>
␈↓ ↓z␈β¬⊃␈↓¬ABORT␈↓ ε CLEAR
␈↓ ↓z␈β¬/␈↓¬DONE␈↓ ε EXEC [<program>],[<nloop>],[<step>]
␈↓ ↓z␈β¬M␈↓¬FREE␈↓ ε P
␈↓ ↓z␈β¬k␈↓¬R␈↓ ε S [<program>],[<nloop>],[<step>]
␈↓ ↓z␈βε	␈↓¬SPEED <value>␈↓ ε STATUS
␈↓ ↓H␈βεA␈↓↓Edit Instructions
␈↓ ↓z␈βπα␈↓¬<any program instruction>␈↓ ε <carriage return>
␈↓ ↓z␈βπ ␈↓¬C <program>,[<nstep>]␈↓ ε D [<nstep>]
␈↓ ↓z␈βπ>␈↓¬E␈↓ ε I
␈↓ ↓z␈βπ\␈↓¬L␈↓ ε P [<nstep>]
␈↓ ↓z␈βπz␈↓¬R [<arg#>],[<new value>]␈↓ ε S <step>
␈↓ ↓z␈βλ_␈↓¬ ␈↓ ε T
␈↓ ↓H␈βλ2␈↓↓User Program Instructions
␈↓ ↓z␈βλs␈↓¬APPRO <position>[!], <dist>␈↓ ε APPROS <position>[!], <dist>
␈↓ ↓z␈β	⊃␈↓¬CLOSE <dist>␈↓ ε CLOSEI <dist>
␈↓ ↓z␈β	/␈↓¬DELAY <duration>␈↓ ε DEPART <distance>
␈↓ ↓z␈β	M␈↓¬DRAW [<dX>],[<dY>],[<dZ>]␈↓ ε DRIVE <jt>,<angle>,<time>
␈↓ ↓z␈β	k␈↓¬GO   <position> [!]␈↓ ε GRASP <distance>,[<label>]
␈↓ ↓z␈β
	␈↓¬MOVE <position> [!]␈↓ ε MOVEI [<jt1>],[<jt2>],[<jt3>],[<jt4>],[<jt5>],[<jt6>],[<hand>],[<speed>]
␈↓ ↓z␈β
'␈↓¬MOVES <position> [!]␈↓ ε OPEN <dist>
␈↓ ↓z␈β
E␈↓¬OPENI <dist>␈↓ ε READY
␈↓ ↓z␈β
c␈↓¬REST
␈↓ ↓z␈β∨␈↓¬ABOVE␈↓ ε BELOW
␈↓ ↓z␈β=␈↓¬FLIP␈↓ ε LEFTY
␈↓ ↓z␈β[␈↓¬NOFLIP␈↓ ε RIGHTY
␈↓ ↓z␈β↔␈↓¬GOSUB <prog>␈↓ ε GOTO <label>
␈↓ ↓z␈β5␈↓¬HERE <position>␈↓ ε IF <i.var1> <relationship> <i.var2> THEN <label>
␈↓ ↓z␈βS␈↓¬PAUSE <string>␈↓ ε RETURN
␈↓ ↓z␈βq␈↓¬SET <trans1> = <trans2>␈↓ ε SETI <i.var1> = <i.var2> [<operation> <i.var3>]
␈↓ ↓z␈β
∂␈↓¬SHIFT <trans> BY [<dx>],[<dy>],[<dz>]␈↓ ε SIGON <channel>
␈↓ ↓z␈β
-␈↓¬SIGOFF <channel>␈↓ ε STOP
␈↓ ↓z␈β
K␈↓¬TYPEI <i.var>␈↓ ε WAIT <channel>
␈↓ ↓z␈β∞π␈↓¬COARSE [ALWAYS]␈↓ ε FINE [ALWAYS]
␈↓ ↓z␈β∞%␈↓¬INTOFF [ALWAYS]␈↓ ε INTON [ALWAYS]
␈↓ ↓z␈β∞C␈↓¬NONULL [ALWAYS]␈↓ ε NULL [ALWAYS]
␈↓ ↓z␈β∞a␈↓¬PULSE␈↓ ε SPEED <value> [ALWAYS]
␈↓ ↓z␈β∞␈␈↓¬TOOL <tool#> = [<dX>],[<dY>],[<dZ>],[<rZ>]
␈↓ ↓z␈β∂;␈↓¬COMMNT <string>␈↓ ε TYPE <string>
␈↓ 8␈β⎇␈↓↓[15]